【发布时间】:2015-06-08 19:46:21
【问题描述】:
从下面的示例数据集中,我将如何通过 django.db 或通过数据库 API 进行查询以获取请求结果?
我想查询数据集以获取 A 中指定日期以外的所有新项目,但我只想要 B 的名称和颜色以及 C 的味道。
class A(models.Model):
export_date = models.DateField()
class B(models.Model):
name = models.CharField()
color = models.CharField()
weight = models.CharField()
a = models.ForeignKey(A)
class C(models.Model):
taste = models.CharField()
smell = models.CharField()
a = models.ForeignKey(A)
编辑: 我可以的
as = A.objects.all().filter(export_date__gte=date)
b = B.objects.all().filter(a=as)
c = B.objects.all().filter(c=as)
但是我仍然坚持使用两个单独的查询集,我必须弄清楚如何手动加入。
【问题讨论】:
-
也许我遗漏了一些东西,但我可以从 A 类生成一个查询,然后用这个查询过滤 B 类。我仍然坚持尝试过滤 C 类,然后手动组合数据。
-
如果您将手动合并数据,我认为没有问题。您可以执行
a_list = A.objects.filter(export_date=whateverdate)之类的操作,然后从B和C获取:b_data =B.objects.filter(a__in=a_list).values('name', 'color')和c_data = C.objects.filter(a__in=a_list).values('taste')。然后你可以将b_data与c_data结合起来,也许使用A对象作为键。如果有帮助,请告诉我。
标签: python django database sqlite