gpt4 book ai didi

django - 如何将两个网址映射到一个 View ?

转载 作者:太空宇宙 更新时间:2023-11-03 13:11:33 25 4
gpt4 key购买 nike

这是我在 models.py 中的类(class):

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(r'^show_person/(?P<persnr>\d+)', "company.views.show_person", name='show_person'),

如何使用这两个 url 访问相同的 View (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

关于django - 如何将两个网址映射到一个 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42574649/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com