Django TypeError 'method' object is not subscriptable

Question:

I’m going through django tutorial and having the TypeError ‘method’ object is not subscriptable. The error is thrown when the following code executed

class ProductListView(ListView):
    model = Product
    queryset = Product.objects.all()

    def get_context_data(self, *args, **kwargs):
        context = super(ProductListView, self).get_context_data(*args, **kwargs)
        context["now"] = timezone.now()
        context["query"] = self.request.GET.get["q"]
        return context

    def get_queryset(self, *args, **kwargs):
        print(self.request)
        qs = super(ProductListView, self).get_queryset(*args, **kwargs)
        query = self.request.GET.get["q"]
        if query:
            qs = self.model.objects.filter(
                Q(title__icontains=query) |
                Q(description__icontains=query)
            )
            try:
                qs2 = self.model.objects.filter(
                    Q(price=query)
                )
                qs = (qs | qs2).distinct()
            except:
                pass
        return qs

The problem line is query = self.request.GET.get["q"]

How do I solve this issue?

Answers:

The problematic line tries to use subscript notation with method get of the mapping GET:

query = self.request.GET.get["q"]

The method should be called with:

query = self.request.GET.get("q")
Answered By: Ilja Everilä
def insert(request):
    member = enrolmentapproval(id = request.POST.get['id'], applied_on = request.POST.get['applied_on'], city = request.POST.get['city'], country = request.POST.get['country'], courseId = request.POST.get['courseId'], courseName = request.POST.get['courseNmae'], created = request.POST.get['created'], dob = request.POST.get['dob'], eligibility_verified = request.POST.get['eligibility_verified'], email_id = request.POST.get['email_id'], exactdup = request.POST.get['exactdup'], exam_registration = request.POST.get['exam_registration'], ilearnUserID = request.POST.get['ilearnUserID'], last_action_by = request.POST.get['last_action_by'], localChapterId = request.POST.get['localChapterID'], localChapterName = request.POST.get['localChapterName'], mobile_no = request.POST.get['mobile_no'], modified = request.POST.get['modified'], nationalid = request.POST.get['nationalid'], passportdup = request.POST.get['modified'], passortno = request.POST.get['passportno'], past_nationality = request.POST.get['past_nationality'], permanent_address = request.POST.get['permanent_address'], present_address = request.POST.get['present_address'], program_name = request.POST.get['program_name'], ranking = request.POST.get['ranking'], rejection_remarks = request.POST.get['rejection_remarks'], semester = request.POST.get['semester'], state = request.POST.get['state'], status = request.POST.get['status'], student_name = request.POST.get['student_name'], year = request.POST.get['year'])
    member.save()
    return redirect(request, '/datatables/base.html')
Answered By: VIGNESH KUMAR R
Categories: questions Tags: , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.