我有一个Slug
模型来识别Page
对象。ABlogPost
继承自Page
。我想找到一个BlogPost
给定的Slug
名字,但没有其他Page
对象。
编辑:添加模型
class Slug(models.Model):
name = models.CharField()
page = models.ForeignKey('Page', null=True)
class Page(models.Model):
slug = models.OneToOneField('Slug', related_name='primary_slug_set')
content = models.TextField()
class BlogPost(Page):
time = models.DateTimeField(auto_now_add=True, editable=False)
我想我追求的是这样的:
Slug.objects.get(name=slug_name).filter(page=subclass_of(BlogPost))
我知道InheritanceManager,select_subclasses(BlogPost)
但我的查询是 for Slug
,所以我看不到这有帮助,除非我用我的 slug 查询Page
并寻找BlogPost
a (这是更好的方法吗?)。
而不是过滤器,我可以遍历所有 slug 结果并手动检查每个结果。似乎这样做的方法是检查Slug
' 页面是否有任何BlogPost
属性。最多只会有一些蛞蝓冲突需要筛选,而且很少有。
有没有办法让数据库查询为我做过滤器?