如何将两个URL映射到一个视图? [英] How to map two urls to one view?
本文介绍了如何将两个URL映射到一个视图?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
这是我的类,来自Models.py:
class Person(models.Model):
name = models.CharField(max_length=64)
persnr = models.AutoField(primary_key=True)
这是我的看法:
def show_person(request, persnr):
pers = get_object_or_404(Person, pk=persnr)
context={'pers':pers}
return render(request, 'company/person.html', context)
这是我的URL:
url(r'^show_person/(?P<persnr>d+)', "company.views.show_person", name='show_person'),
如何使用这两个URL访问相同的视图(Show_Person):
server/show_person/(persnr)
server/show_person/(name)
推荐答案
略有不同的方法是接受两个单独的参数,一个用于PK,一个用于名称:
url(r'^show_person/(?P<persnr>d+)', "company.views.show_person", name='show_person'),
url(r'^show_person/(?P<name>w+)', "company.views.show_person", name='show_person'),
def show_person(request, persnr=None, name=None):
if persnr is not None:
pers = get_object_or_404(Person, pk=persnr)
elif name is not None:
pers = get_object_or_404(Person, name=name)
else:
raise Http404
这篇关于如何将两个URL映射到一个视图?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文