Джанго вид перегруженных просмотров - PullRequest
0 голосов
/ 21 июня 2011

Как это возможно сделать перегруженные представления в 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'),

Как правильно это сделать?

Спасибо

Ответы [ 2 ]

4 голосов
/ 21 июня 2011
def member_list(request,message=None):
    if message:
        pass
    else:
        pass
0 голосов
/ 21 июня 2011

Вы можете использовать необязательные аргументы в вашей подписи представления в ваших интересах здесь.

Просто определите свою точку зрения следующим образом:

def member_list(request, message=None):

И затем, если в URL есть совпадение, оно будет заполнено. Если нет, оно все равно будет 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

(Адаптировано из этого блога )

...