我有一个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并寻找BlogPosta (这是更好的方法吗?)。
而不是过滤器,我可以遍历所有 slug 结果并手动检查每个结果。似乎这样做的方法是检查Slug' 页面是否有任何BlogPost属性。最多只会有一些蛞蝓冲突需要筛选,而且很少有。
有没有办法让数据库查询为我做过滤器?