Не могу заставить его работать с обратным URL для django с именованными аргументами и представлением

#django #url

#django #url

Вопрос:

Я не могу заставить работать get_absolute_url из модели для генерации правильного URL;

urls.py

 url(r'^(P<cat>.*)/(?P<sub_cat>.*)/(?P<page>d*)/$', 
        view = 'a.generic.views.article.list', 
        name = "article_list"),

url(r'^(?P<cat>.*)$', 
        view = 'a.generic.views.category.list_sub', 
        name = "category_list"),
  

models.py

 @m.permalink
def get_absolute_url(self):
    if self.level == 2:
        return ('article_list', (), {
                        'cat': str(self.parent.seo_title), 
                        'sub_cat': str(self.seo_title), 
                        'page': str(0)})
    elif self.level == 1:
        return ('category_list', (), {
                        'cat': str(self.seo_title)})
  

Проблема возникает, когда модель имеет (уровень == 2), и, на мой взгляд, ничего не генерируется…

Например, когда я запрашиваю get_absolute_url, он должен возвращать URL, используя первый шаблон URL.

Комментарии:

1. Вероятно, вам следует внести свою правку в ответ и принять ее как решенную

Ответ №1:

НЕПРАВИЛЬНО:

   url(r'^(P<cat>.*)/(?P<sub_cat>.*)/(?P<page>d*)/$', 
  

ПОЧЕМУ:

отсутствует ? перед P<cat>.* .

ВЕРНО:

   url(r'^(?P<cat>.*)/(?P<sub_cat>.*)/(?P<page>d*)/$',