前一段时间我得到了建议,在使用Django时不要在我的网址中使用GET方法,因为它更干净。
使用一个参数非常好:
(r'^call/add/(?P<call_id>\d+)/$', call_view),
http://127.0.0.1:8000/call/add/1/
但我怎么可能用两个参数使用相同的方法呢?
在我还在学习的时候,请告诉我更好的方法。谢谢。
答案 0 :(得分:3)
你根本无法像http://127.0.0.1:8000/call/add/1/foo/2
那样在背面添加另一个。您必须将第二个参数添加到正则表达式中,例如(r'^call/add/(?P<call_id>\d+)/foo/(?P<foo_id>\d+)$', call_view),
。
您还必须更改控制器:def call_view(request, call_id, foo_id):
答案 1 :(得分:2)
您可以按如下方式指定多个参数:
(r'^call/add/(?P<call_id>\d+)/(?P<other_value>\d+)/$', call_view),
你的观点应该是这样的:
def call_view(request, call_id, other_value):
# view code here
答案 2 :(得分:2)
(r'^call/add/(?P<call_id>\d+)/(?P<receiver_id>\d+)/$', call_view),
http://127.0.0.1:8000/call/add/1/903256
,您需要在views.py
中添加def call_view(request, call_id, receiver_id):
或者您可以w+
代替d+
来传递字符串变量
(r'^call/add/(?P<call_id>\d+)/(?P<receiver_name>\w+)/$', call_view),
http://127.0.0.1:8000/call/add/1/Kave
了解更多信息:https://docs.djangoproject.com/en/dev/topics/http/urls/