Django URL pattern (~~/?item_id=2)

2019-09-25 21:38发布

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.

标签: django url
2条回答
对你真心纯属浪费
2楼-- · 2019-09-25 22:23

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)
    # ...
查看更多
我想做一个坏孩纸
3楼-- · 2019-09-25 22:30

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

item_id = request.GET.get('item_id')
查看更多
登录 后发表回答