Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django外键查询_Django - Fatal编程技术网

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}