【问题标题】:get_absolute_url() using app hook in Djangoget_absolute_url() 在 Django 中使用应用程序挂钩
【发布时间】:2012-10-01 21:38:55
【问题描述】:

我有以下 Django 模型:

class Product(models.Model):
    name    = models.CharField(max_length=250)
    slug    = models.SlugField(max_length=250, unique=True)
    active  = models.BooleanField(default=True)
    date    = models.DateTimeField(auto_now_add=True)

def get_absolute_url(self):
    return '/' +self.slug

我使用这个 apphook 将它附加到一个页面:

class ProductApphook(CMSApp):
    name = _("Products Apphook")
    urls = ["product.urls"]
apphook_pool.register(ProductApphook)

我的问题是关于 get_absolute_url 函数:它将返回一个无效的 url,因为附加此 apphook 的页面的 slug 不会被添加到模型 get_absolute_url 函数中的 absolute_url 之前。 有没有办法让 get_absolute_url 函数返回正确的 url?我对此特别感兴趣,因为管理员中的“预览”功能不适用于上述设置

我不太确定这是否可能,例如如果 apphook 附加到多个页面怎么办?

【问题讨论】:

  • 你应该考虑在'/'之前添加一个'u':return u'/' + self.slug

标签: django url django-models get absolute


【解决方案1】:

我建议在您的 urls.py 中创建一个命名的 url,然后在您的 get_absolute_url 函数中反转该 url。请参阅 Django 文档以获取 reverse()

【讨论】:

    猜你喜欢
    • 2012-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-04
    • 2011-05-17
    • 1970-01-01
    • 2023-02-24
    • 1970-01-01
    相关资源
    最近更新 更多