[英]Django url slugs with modeltranslation NoReverseMatch Error
I am using modeltranslation in my project, and my goal is to also translate the slugs of my urls. 我在项目中使用modeltranslation,我的目标是也翻译url的内容。
The slugs are successfully translated and I overwrote the save method of my Model to automatically populate the slug fields for all the languages in my project. 弹头已成功翻译,我改写了Model的save方法以自动填充项目中所有语言的弹头字段。
class FrontendCategory(models.Model):
name = models.CharField(_('Name'), max_length=255, db_index=True)
slug = AutoSlugField(_('Slug'), populate_from='name', max_length=255, db_index=True)
def save(self, *args, **kwargs):
for lang_code, lang_verbose in settings.LANGUAGES:
if hasattr(self, 'slug_%s' % lang_code) and hasattr(self, 'name_%s' % lang_code):
setattr(self, 'slug_%s' % lang_code, slugify(getattr(self, 'name_%s' % lang_code, u"")))
def get_absolute_url(self):
url = reverse(
'catalogue:frontend-category',
kwargs={'frontend_category_slug': self.slug, 'pk': self.pk})
return url
I checked and all the slugs are translated and saved correctly in the database. 我检查了一下,所有子弹均已翻译并正确保存在数据库中。
this is my url: 这是我的网址:
url(r'^section/(P<frontend_category_slug>[\w-]+(/[\w-]+)*)_(?P<pk>\d+)/$',
self.frontend_category_view.as_view(), name='frontend-category'),
if I call the get_absolute_url method in a template the following error gets raised: 如果我在模板中调用get_absolute_url方法,则会引发以下错误:
Reverse for 'frontend-category' with arguments '()' and
keyword arguments '{'pk': 5, 'frontend_category_slug':'test-slug'}' not found.
1 pattern(s) tried: ['de/catalogue/section/(P<frontend_category_slug>[\\w-]+(/[\\w-]+)*)_(?P<pk>\\d+)/$']
which seams weird because it is exactly what I seem to have defined in my url definition. 哪个看起来很奇怪,因为它似乎正是我在url定义中定义的内容。 All of this was working before I translated the slug with modeltranslation.
在我使用modeltranslation来翻译段子之前,所有这些工作都是有效的。 Is there some kind of slug lookup performed by the url definition?
url定义是否执行某种类型的查询? Am I missing something else?
我还有其他东西吗?
It turns out that my problem had nothing to do with modeltranslation and languages, while I was editing my code I accidentally edited my url definition which caused this error. 事实证明,我的问题与模型翻译和语言无关,而在编辑代码时,我不小心编辑了导致此错误的URL定义。
url(r'^section/(P<frontend_category_slug>[\w-]+(/[\w-]+)*)_(?P<pk>\d+)/$',
self.frontend_category_view.as_view(), name='frontend-category'),
should be 应该
url(r'^section/(?P<frontend_category_slug>[\w-]+(/[\w-]+)*)_(?P<pk>\d+)/$',
self.frontend_category_view.as_view(), name='frontend-category'),
(missing questionmark befor P): (在P之前缺少问号):
?P<frontend_category_slug>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.