Django URL模式(~~ /?item_id = 2)

时间:2011-12-06 10:08:21

标签: django url

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

以上是网址格式的示例。我应该如何配置我的URL以使其能够重定向到正确的视图? 到目前为止,我似乎只为这个https://xxxx/category_check_view/2/这个网址工作了。

2 个答案:

答案 0 :(得分:5)

您可以在url:

中将参数传递给视图
/category_check_view/2

或通过GET参数:

/category_check_view/?item_id=2

GET参数不由URL处理程序处理,而是直接传递到GET视图中可访问的request.GET参数文字。

Django(即首选)处理URL的方法是第一种。所以你会有一个URL conf:

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

一个匹配的观点:

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

但是,如果你坚持通过GET传递参数,你就会这样做:

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

def your_view(request):
    id = request.GET.get('item_id')
    obj = Obj.objects.get(id=id)
    # ...

答案 1 :(得分:3)

您无法在网址格式中使用get参数。在您的视图中使用它们:

item_id = request.GET.get('item_id')