如何在Django中重载视图? 问题是我有一个视图,可能只接受一个参数或没有。 如果有参数,它会将其传递给查看。
让我们展示一下我在尝试的东西'做
views.py
def member_list(request,message):
memberList = Member.objects.all()
return render_response(request, 'user/member_list.html', {'memberList': memberList, 'message':message })
def member_list(request,message):
memberList = Member.objects.all()
return render_response(request, 'user/member_list.html', {'memberList': memberList, 'message':message })
urls.py
(r'^member/list/$', 'views.member_list'),
(r'^member/list/(?P<message>[-\w]+)/$', 'views.member_list'),
这样做的正确方法是什么?
由于
答案 0 :(得分:4)
def member_list(request,message=None):
if message:
pass
else:
pass
答案 1 :(得分:0)
您可以在视图签名中使用可选参数,这对您有利。
只需像这样定义您的视图:
def member_list(request, message=None):
然后,如果网址中有匹配,则会填写。如果没有,则仍为None
。
if message is None:
# I got here via the '^member/list/$' URL regex
else:
# I got here via the '^member/list/(?P<message>[-\w]+)/$' URL regex
(改编自this blog post)