mic*_*mic 3 python django django-models
我有看起来像这样的模型:
class Type(models.Model):
name = models.CharField(max_length=50)
notes = models.CharField(max_length=50)
class Instance(models.Model):
type = models.ForeignKey(Type, on_delete=models.CASCADE)
color = models.CharField(max_length=50)
quantity = models.PositiveIntegerField()
Run Code Online (Sandbox Code Playgroud)
我想所有的列表Type具有至少一个S Instance,其quantity大于0。我怎样才能表达?
在(伪)香草 Python 中,这将类似于:
[type for type in Type.objects.all()
if type.instance_set.objects.filter(lambda instance: instance.quantity > 0)]
Run Code Online (Sandbox Code Playgroud)
我试过
available_types = Type.objects.filter(Q(instance_set__contains=Q(quantity__gt=0))
Run Code Online (Sandbox Code Playgroud)
但这不起作用,因为 Django 正在寻找quantity的属性Type,当然没有找到它,因为它是Instance.
您可以直接过滤关系:
Type.objects.filter(instance__quantity__gt=0)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
849 次 |
| 最近记录: |