给定以下模型:
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)')
但据我所知,那失败得很惨。