在下面的示例中,如果将url设置为,则uuid的模式应该是什么?
urls.py
url(r'^getbyempid/(?P<emp_id>[0-9]+)/(?P<factory_id>[0-9]+)$',views.empdetails)
不起作用
http://10.0.3.79:8000/app1/getbyempid/1/b9caf199-26c2-4027-b39f-5d0693421506
但这有效
http://10.0.3.79:8000/app1/getbyempid/1/2
最佳答案
除了数字0-9,uuid还可以包含数字a-f和连字符,因此您应该将模式更改为
(?P<factory_id>[0-9a-f-]+)
您可以使用更严格的正则表达式,但这通常不值得。在您看来,您可以执行以下操作:
try:
factory = get_object_or_404(Factory, id=factory_id)
except ValueError:
raise Http404
这将处理无效的uuid或数据库中不存在的uuid。
关于django - Django URL UUID不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32950432/