Эта тема является продолжением мышления в этой теме . Я вернулся к проблеме реверса в общих взглядах. В прошлый раз я думал, что это не обратное совпадение, потому что я использовал много ко многим, теперь у меня не так много отношений *** к обратному, но проблема все еще существует. Так как в обоих случаях у меня есть общее представление в URL, я предположил, что проблема заключается в общих представлениях и отсутствии функции представления.
Сначала я использовал @permalink decorator в моделях
...
@permalink
def get_absolute_url(self):
return ('categories', str(self.id))
...
@permalink
def get_absolute_url(self):
return ('pages', (), {'page_name': self.human_readable_url})
URLs
url(r'^(?P<page_name>&\w*)?/?$', direct_to_template,
{'template': 'basic.djhtml'},
name = "pages"),
url(r'cat/\d+/$',
direct_to_template,
{'template': 'basic.djhtml'},
name = "categories")
И получил ошибку:
NoReverseMatch: не найдено обратное значение для "страниц" с аргументами "()" и аргументами ключевых слов "{" имя_страницы ": u'page1 '}'.
Тогда я попробовал обратный метод
def get_absolute_url(self):
return reverse('categories', args = [self.id, ])
И имеют ту же ошибку
NoReverseMatch: обратное для «категорий» с аргументами (2,) и ключевыми словами «{}» не найдено.
Основываясь на том факте, что постоянная ссылка явно не использует обратный метод, я думаю, что проблема заключается в обратном взаимодействии и общем представлении в URL. Почему это происходит? Как использовать реверс в общих представлениях URL?