繁体   English   中英

Django通过外键查询

[英]Django query by foreign key

我正在学习Django,并且具有以下基本模型:

from django.db import models

class Country(models.Model):
    name = models.CharField(max_length=255,)
    continent = models.ForeignKey('Continent')

class Continent(models.Model):
    name = models.CharField(max_length=255, unique = True)
    countries = ???

我希望Continent.countries属性返回匹配的国家/地区,其中大陆-外键设置为此大陆。 从Django文档中,我发现我应该使用外键,但是向后查询引起了问题。 我已经尝试了几种方法,但是作为一个初学者,我找不到做到这一点的“正确”方法。 有什么建议么?

您无需在Continent上创建countries属性即可建立反向关系。 您可以使用反向的ForeignKey关系找到与每个Continent相连的Countries

continent = Continent.objects.get(name='Asia')
countries = continent.country_set.all()

当您在CountryContinent之间创建ForeignKey关系时, country_set函数由Django创建。

我同意xyres 另外,您可以在ForeignKey中定义related_name ,例如:

continent = models.ForeignKey('Continent', related_name='countries')

这样一来,您就可以轻松获得大洲的国家/地区:

continent.countries.all()

在这里, 大陆大陆模型的对象。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM