Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何通过uuid检索对象';在Django_Python_Django - Fatal编程技术网

Python 如何通过uuid检索对象';在Django

Python 如何通过uuid检索对象';在Django,python,django,Python,Django,当我的模型是uuid表示时,我想通过它的pk字段访问它。我在这个地址上发现了一个年龄错误404` 我有这个配置 def get_box(request, pk): """ Retrieve the object """ box = get_object_or_404(Box, pk=pk) return render( request, 'boxes/box.html', {'bo

当我的模型是uuid表示时,我想通过它的pk字段访问它。我在这个地址上发现了一个年龄错误404
` 我有这个配置

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

@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)
和我的URL.py

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

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

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

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

错误是什么?没有反向匹配?@Sayse no我有此错误
当前URL box/6d99a390-5a8a-41e6-8fbf-84a2bb7a8e0f与任何一个都不匹配。