【问题标题】:get_absolute_url() depending on attributeget_absolute_url() 取决于属性
【发布时间】:2015-03-21 15:50:06
【问题描述】:

我只在条件为真时才尝试返回 url,但看起来 Django 不允许这样做:

def get_absolute_url(self):
    if self.display_personal_page:
        return reverse('users:detail', args=[self.slug])
    else:
        return None

【问题讨论】:

  • Django 不允许是什么意思?您是否收到错误(如果是,您能否分享问题中的错误消息和回溯)?
  • 当函数返回 None 并且函数返回空字符串时,我收到一个错误,在 Django 的管理中“现场查看”仍然出现。 Django 想要一个字符串,但我只想在条件为真时定义这个函数。
  • 什么意思,它想要一个字符串?它在哪里需要一个字符串? 你看到了什么错误?
  • 您在我回复后更改了您的评论。看我的回答。

标签: django django-models django-urls


【解决方案1】:

Django 不使用从get_absolute_url 返回的内容来确定是否显示“在站点上查看”链接。但是,它确实在 ModelAdmin 类上提供了一个 get_view_on_site_url 方法,这就是您应该重写以创建逻辑的方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-11
    • 2013-03-19
    • 2012-01-14
    相关资源
    最近更新 更多