我有 2 个模型
class Parent(models.Model):
name = models.CharField(max_length=50)
class Child(models.Model):
parent = models.ForeignKey(Parent,related_name='child')
child_name = models.CharField(max_length=80)
type = models.BooleanField()
我想从父模型获取结果,从子模型获取相关记录
Parent.objects.all()
它向我返回父级和子级的所有记录 在 django rest 框架中,但我只想要那个类型的孩子,我该如何添加条件
请让我知道
在父泛型列表中 api 视图覆盖 get_queryset 方法:
def get_queryset(self):
return (Parent.objects.all()
.prefetch_related(Prefetch('child', queryset=Child.objects.filter(type=True))))
另外,在旁注中,我建议您不要在子模型上type
命名该字段,因为它与python关键字type
冲突。另一个建议是使用 related_name 值作为 children
.