0

我用我的项目modeltranslation,我的目标是要还翻译我的网址的蛞蝓。Django的URL蛞蝓与modeltranslation NoReverseMatch错误

蛞蝓成功地翻译,我重写了我的模型的保存方法自动填充废料场在我的项目的所有语言。

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 

我检查并且所有的slu are被翻译并正确地保存在数据库中。

这是我的网址:

url(r'^section/(P<frontend_category_slug>[\w-]+(/[\w-]+)*)_(?P<pk>\d+)/$', 
       self.frontend_category_view.as_view(), name='frontend-category'), 

如果我称之为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+)/$'] 

其接缝奇怪,因为这正是我似乎有在我的url定义中定义。所有这些都是在我用模型翻译翻译slu before之前工作的。是否有某种由url定义执行的slug查找? 我是否缺少别的东西?

+0

怎么样,如果你把这个'get_absolute_url'里面:'从django.utils导入translation'和'LANG = translation.get_language()'和'与translation.override(朗):URL =反向(...)返回url' ?? –

+0

感谢你的输入,但我意识到,这已经无关modeltranslation本身,我搞砸了正则表达式在编辑我的代码 – matyas

回答

0

事实证明,我的问题无关,与modeltranslation和语言,而我是编辑我的代码,我不小心编辑导致了这一错误我的网址定义。

url(r'^section/(P<frontend_category_slug>[\w-]+(/[\w-]+)*)_(?P<pk>\d+)/$', 
       self.frontend_category_view.as_view(), name='frontend-category'), 

应该

url(r'^section/(?P<frontend_category_slug>[\w-]+(/[\w-]+)*)_(?P<pk>\d+)/$', 
     self.frontend_category_view.as_view(), name='frontend-category'), 

(失踪befor P问号):

?P<frontend_category_slug>