【发布时间】:2011-09-13 09:37:54
【问题描述】:
这个话题是this topic的继续思考。我在通用视图中遇到了反向问题。上次我认为这不是反向匹配,因为我使用了多对多,现在我没有很多反向关系,但问题仍然存在。由于在这两种情况下我在 url 中都有通用视图,我建议问题出在通用视图中并且没有视图功能。 起初我在模型中使用了@permalink 装饰器
...
@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})
网址
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:找不到带有参数“()”和关键字参数“{'page_name': u'page1'}”的“pages”的反向。
然后我尝试了反向方法
def get_absolute_url(self):
return reverse('categories', args = [self.id, ])
也有同样的错误
NoReverseMatch:未找到带有参数“(2,)”和关键字参数“{}”的“类别”的反向。
基于永久链接没有明确使用反向方法的事实,我认为问题在于url中的交互反向和通用视图。为什么会这样?如何在 url 通用视图中使用反向?
【问题讨论】:
标签: django django-urls