【发布时间】:2016-04-12 04:51:06
【问题描述】:
给定模型(供应商提供零件,多对多关系):
from django.db import models
class Part(models.Model):
pass
class Vendor(models.Model):
name = models.CharField(max_length=100)
parts = models.ManyToManyField(Part)
def __str__(self):
return "%s" % self.name
是否可以编写一个 Django 查询来获取提供所有部件的供应商?我对将生成单个 SQL 语句的查询感兴趣。
例如,使用以下数据:
p1 = Part()
p2 = Part()
p3 = Part()
v1 = Vendor(name="supply nothing")
v2 = Vendor(name="supply some parts")
v3 = Vendor(name="supply all parts")
p1.save()
p2.save()
p3.save()
v1.save()
v2.save()
v3.save()
v2.parts.add(p1,p2)
v3.parts.add(p1,p2,p3)
我想得到:
[<Vendor: supply all parts>]
【问题讨论】:
-
看看这个:stackoverflow.com/questions/13270513/…,对我来说听起来很合理。
-
@ShangWang 谢谢,但它不是一个单一的声明。
-
好吧,我实际上并不太确定我找到的答案中的循环部分,因为我认为第一部分就足够了。看看这个:stackoverflow.com/questions/15977126/…。请尝试一下,看看循环前后有什么不同。
标签: django django-models