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

そして、このアプリフックを使用してページに添付しました:

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

私の質問は get_absolute_url 関数に関するものです。この apphook がアタッチされているページのスラッグは、モデルの get_absolute_url 関数の absolute_url の先頭に追加されないため、無効な 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 に答える