我目前正在尝试使用启用unicode的slugs处理一个请求。
即"127.0.0.1:8080/æøå/"适用于通用ListView:
path('<slug>/', ServiceList.as_view(), name='service-list'),
但在DetailView上失败,SQL查询中有0个匹配项:
path('<slug>/', ServiceDetail.as_view(), name='service-detail'),
没有给出进一步的错误。我是否缺少请求和数据库(SQLite3(之间的一些unicode转换?
添加第二个路径后,Django会混淆他应该去哪里。要解决它,您必须更改路径。每条路径都必须有唯一的url
models.py中有一个错误。它现在按预期工作。
之前:
def __init__(self, *args, **kwargs):
super(Service, self).__init__(*args, **kwargs)
self.slug = text.slugify(self.title, allow_unicode=True)
之后:
def save(self, *args, **kwargs):
self.slug = text.slugify(self.title, allow_unicode=True)
super(Service, self).save(*args, **kwargs)