gpt4 book ai didi

python - 如何在 Django 中通过 uuid 检索对象

转载 作者:行者123 更新时间:2023-11-28 22:38:19 25 4
gpt4 key购买 nike

当它是一个 uuid 表示时,我想通过它的 pk 字段访问我的模型。我收到年龄错误 404在此地址 http://localhost:8002/box/6d99a390-5a8a-41e6-8fbf-84a2bb7a8e0f `我有这个配置

def get_box(request, pk):
"""
Retrieve the object
"""
box = get_object_or_404(Box, pk=pk)
return render(
request,
'boxes/box.html',
{'box':box}
)

还有我的 models.py

@python_2_unicode_compatible
class Box(models.Model):
"""
Box model
"""
def __str__(self):
return self.title
id = models.UUIDField(primary_key=True,
default=uuid.uuid4, editable=False)
title = models.CharField(max_length=40, blank=True, null=True)

还有我的 urls.py

...
url(r'^box/(?P<pk>[0-9A-Za-z]+)/$', views.get_box, name='box'),
...

最佳答案

问题不在于查询,而在于 URL。您的正则表达式仅匹配字母数字字符,但 uuid 也包含破折号;你应该在模式中包括那些:

r'^box/(?P<pk>[0-9A-Fa-f-]+)/$'

(另请注意,字符只能是 a 到 f,不能是 a 到 z。)

关于python - 如何在 Django 中通过 uuid 检索对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35675338/

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