ValueError严重形成十六进制UUID字符串django ListView

时间:2017-03-28 22:11:42

标签: python django uuid

假设已完成所有导入。

我有一个这样的模型:

class Package(models.Model):
  uuid = models.UUIDField(default=uuid.uuid4, editable=False)
  name = models.CharField(max_length=400)

然后我想像这样使用泛型ListView

class PackageList(ListView):
  model = Package
  template_name = 'package/list.html'

所有网址都是这样的:

url(r'^package/list/$', views.PackageList.as_view(), name='package_list'),

当我访问localhost:8000时,我明白了 ValueError at /package/list/ badly formed hexadecimal UUID string

但是,DetailView通用视图会成功加​​载基于uuid的详细信息,而不会出现任何问题。

只有在使用ListView时才会出现错误。

我做错了什么?

1 个答案:

答案 0 :(得分:0)

想通。

网址序列是罪魁祸首。以这种方式修改它:

url(r'^travel/add/$', views.TravelAdd.as_view(), name='travel_add'),
url(r'^travel/list/$', views.TravelList.as_view(), name='travel_list'),
url(r'^travel/(?P<uuid>[\w-]+)/$', views.TravelDetail.as_view(), name='travel_detail'),

以前,就是这样:

url(r'^travel/add/$', views.TravelAdd.as_view(), name='travel_add'),
url(r'^travel/(?P<uuid>[\w-]+)/$', views.TravelDetail.as_view(), name='travel_detail'),
url(r'^travel/list/$', views.TravelList.as_view(), name='travel_list'),