【发布时间】:2011-12-22 20:23:20
【问题描述】:
我正在尝试使用一个视图来解析两种 url 模式,方法是在视图定义中使用可选参数。 我正在关注this post 和this other question 的建议。
这是我的 url 模式代码 urls.py:
urlpatterns = patterns('myapp.views',
url(r'^(?P<slug>[\w-]+)/$', 'my_view', name='main_url'),
url(r'^(?P<slug>[\w-]+)/(?P<optional>[\w-]*)/$', 'my_view', name='optional_url'),
)
以及视图的定义:
def my_view(request, slug, optional=None):
就根据 url 模式显示模板而言,一切正常。 但是,当我尝试使用模型永久链接显示链接时,它会中断。我正在按照 django 文档中的说明获取模型绝对 url 的方式。
这是我的模型的代码:
class MyModel(models.Model):
name = models.CharField(max_length=128)
slug = models.CharField(max_length=32)
@models.permalink
def get_absolute_url(self):
return ('main_url', [self.slug])
问题在于 get_absolute_url 返回一个带有两个参数的 url。所以我得到了类似这个 domain.com/slug// 而不是这个 domain.com/slug/
如何在没有第二个参数的情况下获取绝对 url? 是不是我做错了什么?
谢谢
【问题讨论】:
标签: python django url permalinks