0
프로젝트에서 모델 번역을 사용하고 있으며 내 목표의 슬러그를 번역하는 것이 목표입니다.모델 링크가있는 장고 URL 슬러그 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
확인했는데 모든 슬러그가 데이터베이스에 올바르게 변환되어 저장되었습니다. 내가 갖고있는 것 같다 무엇
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+)/$']
정확히 때문에 이상한 솔기 : 나는 템플릿의 get_absolute_url 메서드를 호출하는 경우
url(r'^section/(P<frontend_category_slug>[\w-]+(/[\w-]+)*)_(?P<pk>\d+)/$',
self.frontend_category_view.as_view(), name='frontend-category'),
다음과 같은 오류가 발생됩니다 :
이
내 URL입니다 내 URL 정의에 정의되어 있습니다. 내가 슬러그를 모델 번역으로 번역하기 전에이 모든 것이 효과가 있었다. URL 정의에 의해 수행되는 슬러그 검색의 일종이 있습니까? 다른 것이 누락 되었습니까?
방법에 대해 당신이'get_absolute_url' 안에이를 넣을 경우 :'django.utils이 translation'를 가져올에서와 'lang = translation.get_language()'와'translation.override (lang) : url = reverse (...) return url' ?? –
입력 해 주셔서 감사합니다.하지만 모델 변환 자체와 아무런 관련이 없다는 것을 깨달았습니다. 코드를 편집하는 동안 정규식을 엉망으로 만들었습니다. – matyas