鑑於以下型號:如何覆蓋inherited/child對象中的related_name?
class Module(models.Model):
pass
class Content(models.Model):
module = models.ForeignKey(Module, related_name='contents')
class Blog(Module):
pass
class Post(Content):
pass
我希望能夠得到通過博客做類似擁有的所有的「郵報」的對象:
b = Blog.objects.get(pk=1)
b.posts.all()
不過,我還沒有想出這是一個很好的方法。我不能使用b.contents.all()
,因爲我需要Post
實例,而不是Content
實例。我永遠不會擁有一個根內容對象,每個內容對象都將被分類,但是我不能使用抽象類,因爲我想要一箇中心表,其中包含我的所有內容,然後會有content_blog等所有表獨特的遺傳內容。
我也試着這樣做
class Content(models.Model):
module = models.ForeignKey(Module, related_name='%(class)')
但慘遭失敗,據我可以告訴。
尚未接受,因爲我真的希望看到解決方法。但是這看起來像是最有前途的,但很簡單的答案。與此相關的一個問題是它只適用於博客(或任何其硬編碼)。 Post可能同時屬於博客和論壇等。 – Adam
雖然,在查詢像related_name時,這不起作用。 – benselme