Adr*_*ian 2 django django-models django-queryset
我正在使用 django,但在弄清楚如何处理对数据库的复杂查询时遇到了一些麻烦。我有两个模型:
家长:
id = models.AutoField(primary_key = True)
name = models.CharField(max_length = 60)
category = models.ForeignKey(Categories, on_delete = models.CASCADE)
Run Code Online (Sandbox Code Playgroud)
还有儿子:
id = models.AutoField(primary_key = True)
name = models.CharField(max_length = 60)
parent = models.ForeignKey(Parent, on_delete = models.CASCADE)
Run Code Online (Sandbox Code Playgroud)
基本上,我有一个带有儿子查询集的对象,我需要按父类的某些类别过滤这个查询集。例如,过滤父类别为 9、10 或 11 的所有儿子。
我知道如何使用 Q 来做 OR 部分,但我不知道如何按父级中的字段进行过滤。
尝试这样的事情:
sons = Son.objects.filter(parent__category__in = [9, 10, 11]).select_related('parent')
Run Code Online (Sandbox Code Playgroud)
您必须使用__(双下划线)来访问ForeignKey model's字段。