Django URL Dispatcher与unicode slug不匹配



我目前正在尝试使用启用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)

最新更新