django - Django URL UUID不起作用

标签 django django-urls

在下面的示例中,如果将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/

相关文章:

python - Django 用户身份验证和呈现由该特定用户创建的内容?

jquery - Django crispy-forms - 自定义按钮

django - 定制登记表。确认密码

django url反向不适用于命名url(重新编辑)找到了原因,但现在卡住了!

Django url 反向错误

当模板标签中提到尺寸时,django 头像显示旧图像

javascript - 通过jquery模拟提交按钮并收集所有html输入值

django - UpdateView缺少QuerySet错误

python - 在 Django 中从 urls.py 输出文本

python - 在 Django 通用 View 中指定不同的模板名称