On Jan 5, 5:24 am, Delacroy Systems <[email protected]> wrote:
> I want to allow a user to search for a value and return the results
> using the object_list generic view. How can I get this working?
>
> business_search.html:
> {% block content %}
> <form action="" method="get">
> Business name:<input type="text" name="business" />
> <input type="submit" value="Search" />
> {% endblock content %}
>
> urls.py:
> (r'^?business=(?P<business_name>\w+)/','businessnamesearch_view'),
>
> views.py: (field in models.py to search on is named business)
> def businessnamesearch_view(request, business_name):
> business = Business.objects.filter
> (business__icontains=business_name)
> return object_list(request, queryset=business)
>
> I have a template, business_list.html that works already.
>
> I get the error:
> Request Method: GET
> Request URL: http://127.0.0.1:8000/business/?business=AB
> Exception Type: error
> Exception Value: nothing to repeat
"Nothing to repeat" is a regex error - the initial question mark is
not escaped, so Python thinks you are trying to use it as a wildcard.
In fact, you are going about this the wrong way. Query parameters -
those after the ? in a URL - are not dealt with in the URLconf at all,
but are passed in the request.GET dictionary. So you your urlconf
should be:
(r'^$', 'businessnamesearch_view')
and the view should be:
def businessnamesearch_view(request):
business_name = request.GET.get('business')
...etc...
--
DR.
--
You received this message because you are subscribed to the Google Groups
"Django users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/django-users?hl=en.