【发布时间】:2017-02-10 19:44:08
【问题描述】:
我在使用 Django 框架设计数据库时遇到了一个我似乎无法解决的问题。假设我有以下型号:
class Report(models.Models):
equipment = models.ForeignKey(Equipament)
category = models.ForeignKey(Category)
date = models.DateField()
user = models.CharField(max_length=100)
class TestA(models.Model):
report = models.ForeignKey(Report)
lasers = models.FloatField()
table = models.FloatField()
dose = models.FloatField()
pass_fail = models.NullBooleanField()
class TestB(models.Model):
report = models.ForeignKey(Report)
ctdi = models.FloatField()
pass_fail = models.NullBooleanField()
class TestC(models.Model):
report = models.ForeignKey(Report)
pass_fail = models.NullBooleanField()
我的问题是:是否有可能从测试 B、C 和 D 中获取共享报告中相同对象的所有对象?我不希望单独查询每个模型(TestB、TestC 或 TestD),因为实际上我有更多的测试模型。
非常感谢任何帮助。
【问题讨论】:
-
你是说你有一个ModelA对象,你想得到相关的ModelB、C、Ds?这似乎也可能与您的问题有关stackoverflow.com/a/2315053/4974980
-
@JensAstrup 谢谢。这正是我想要做的。我去看看。
-
@JensAstrup 感谢您的提示。虽然这是一个类似的问题,但我无法解决它。似乎已弃用用作解决方案的“get_all_related_objects()”方法。这似乎是一件“可行的”事情。我正在寻求查询 ModelA 对象并从其他模型中获取所有相关的对象...
-
所有这些相关模型是什么样的(就包含的字段而言)。而不是使用ABC,你能发布一个好的样本吗?谢谢
-
@e4c5 更新了我的帖子。我正在对设备进行测试。每个测试都有不同的值要保存,所以我为每个测试创建了不同的模型。我虽然通过给他们一个外键到同一个报告对象来关联所有的测试,所以我实际上可以提供一个包含所有测试的报告。认为这很容易,但似乎无法解决。
标签: django django-models django-queryset foreign-key-relationship