gpt4 book ai didi

python - 带有可选参数的 View 中的 Django 永久链接

转载 作者:太空宇宙 更新时间:2023-11-04 06:38:06 24 4
gpt4 key购买 nike

我正在尝试通过在 View 定义中使用可选参数,使用一个 View 来解析两个 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'),
)

以及 View 的定义:

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?我做错了什么吗?

谢谢

最佳答案

您在 get_absolute_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 "/%s/" % self.slug

关于python - 带有可选参数的 View 中的 Django 永久链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8023724/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com