Django外键查询
我想在中国做类似的事情Django外键查询,django,Django,我想在中国做类似的事情 class Model1(models.Model): a1 = models.CharField() class Model2(models.Model): a2 = models.CharField() model1 = ForeignKey(Model1) 我想做的是; 对于传递到action.html的每个“model1_实例”对象,我需要其相应的Model2对象。 尝试使用model2\u instance=model1\u inst
class Model1(models.Model):
a1 = models.CharField()
class Model2(models.Model):
a2 = models.CharField()
model1 = ForeignKey(Model1)
我想做的是;
对于传递到action.html的每个“model1_实例”对象,我需要其相应的Model2对象。
尝试使用model2\u instance=model1\u instances.model2\u set.all()
,但没有给出所需的结果,可能是因为model1\u instances返回数据库中的所有model1对象
我所知道的
如果我使用类似的东西
#views.py
def action(request):
model1_instances = Model1.objects.all()
render_to_respose('action.html', 'model1_instances': model1_instances, context_instance=RequestContext(request)
很容易得到相应的结果
model1_instance = Model1.objects.get(pk=1)
我已经知道了,这不是我想要的
需要一些线索,伙计们
解决方案
谢谢大家的贡献。我偶然发现了这个[API]:我决定利用它。正如俗话所说,“没有必要重新发明轮子”。它奏效了,实际上帮我省去了很多头痛,现在我可以把注意力集中在其他事情上了。我想你想要的答案已经在另一个线程中得到了回答 但是,在我的脑海中(未经测试),尝试以下内容:
model2_instance = model1_instance.model2_set.all().
我想你想要的答案已经在另一个帖子里被回答了 但是,在我的脑海中(未经测试),尝试以下内容:
model2_instance = model1_instance.model2_set.all().
您将获得Model1的实例:
model2_instance = Model2.objects.filter(model1__pk=1)
然后,要获取使用FK引用它的Model2实例,请尝试以下操作:
model1 = Model1.objects.get(pk=1)
这将返回引用Model1实例的所有Model2实例集
我从以下方面获得了这方面的信息:
编辑:
获取模板中的相关Model2实例,而不是视图:
model2 = model1.Model2_set.all()
您将获得Model1的实例:
model2_instance = Model2.objects.filter(model1__pk=1)
然后,要获取使用FK引用它的Model2实例,请尝试以下操作:
model1 = Model1.objects.get(pk=1)
这将返回引用Model1实例的所有Model2实例集
我从以下方面获得了这方面的信息:
编辑:
获取模板中的相关Model2实例,而不是视图:
model2 = model1.Model2_set.all()
谢谢大家的贡献。我偶然发现了这个[API]:我决定利用它。正如俗话所说,“没有必要重新发明轮子”。它奏效了,实际上帮我省去了很多头痛,现在我可以把注意力集中在其他事情上了 感谢大家的贡献。我偶然发现了这个[API]:我决定利用它。正如俗话所说,“没有必要重新发明轮子”。它奏效了,实际上帮我省去了很多头痛,现在我可以把注意力集中在其他事情上了 这不是我想要的,不过还是要谢谢你。您已将“model2_实例”查询集限制为pk=1的model1。我想要为每个“model1_实例”提供相关Model2对象的东西。啊,我明白了。很抱歉我会有一个剧本,然后试着回复你。这不是我想要的,但无论如何,谢谢你。您已将“model2_实例”查询集限制为pk=1的model1。我想要为每个“model1_实例”提供相关Model2对象的东西。啊,我明白了。很抱歉我会有一个剧本,然后再打给你。再次感谢你。为了进一步澄清,我已经编辑了我的OP。你没有领会要点。我知道如何使用(在您的情况下)model1=model1.objects.all(),然后获取相关的Model2实例。再次抱歉。如果您找到了答案,请您更新这个线程,因为我也是Django新手:)也许可以尝试在模板中而不是视图中获取model2_set.all()?不是很理想,但你应该得到你想要的吗?将更新此答案。希望这次我能理解你:)再次感谢你。为了进一步澄清,我已经编辑了我的OP。你没有领会要点。我知道如何使用(在您的情况下)model1=model1.objects.all(),然后获取相关的Model2实例。再次抱歉。如果您找到了答案,请您更新这个线程,因为我也是Django新手:)也许可以尝试在模板中而不是视图中获取model2_set.all()?不是很理想,但你应该得到你想要的吗?将更新此答案。希望这次我听懂了:)这样的字典够了吗
total_model2_instances={model1_instance:model1_instance.model2_set.all()用于model1_instances}
这样的字典够了吗total_model2_instances={model1_instance:model1_instance.model2_set.all()用于model1_instances中的model1_instance}