get_absolute_url()在Django中使用app hook

时间:2012-10-01 21:38:55

标签: django url django-models get absolute

我有以下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附加到多个页面怎么办?

1 个答案:

答案 0 :(得分:1)

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