0

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

4

1 回答 1

1

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

于 2012-10-01T21:49:45.563 回答