-3

https://xxxx/category_check_view/?item_id=2

Above is a sample of URL pattern. How should i configured my URL in order to enable it to redirect to the right view? I seem to get it working for a url like this https://xxxx/category_check_view/2/ only so far.

user1076881
  • 241
  • 7
  • 15
  • Read the documentation: https://docs.djangoproject.com/en/dev/topics/http/urls/#what-the-urlconf-searches-against – benjaoming Dec 06 '11 at 13:21

2 Answers2

5

You can pass parameters to a view either in the url:

/category_check_view/2

Or via GET params:

/category_check_view/?item_id=2

GET params are not processed by the URL handler, but rather passed directly to the GET param dict accessible in a view at request.GET.

The Django (i.e. preferred) way to do handle URLs is the first one. So you would have a URL conf:

(r'^category_check_view/(\d{4})$', 'proj.app.your_view'),

And a matching view:

def your_view(request, id):
    obj = Obj.objects.get(id=id)
    # ...

However, if you insist on passing the param via GET you would just do:

(r'^category_check_view$', 'proj.app.your_view'),

And:

def your_view(request):
    id = request.GET.get('item_id')
    obj = Obj.objects.get(id=id)
    # ...
Yuval Adam
  • 161,610
  • 92
  • 305
  • 395
3

You can't use get parameters in URL pattern. Use them in your view:

item_id = request.GET.get('item_id')
DrTyrsa
  • 31,014
  • 7
  • 86
  • 86