所以我做的Django模型Country
和Embassy
,使馆要求两个国家参与,代表使馆一个国家,一个又一个的使馆位于,所以我已经把2个Country
S作为在国外键Embassy
下面是我的模型.py:
from django.db import models
class Country(models.Model):
code = models.CharField(primary_key=True, max_length=3) #ISO Alpha-3 Country Code
name = models.CharField(max_length=50, db_column="Name")
def __str__(self):
return self.name
class Embassy(models.Model):
government = models.ForeignKey(Country, on_delete=models.CASCADE, related_name="government")
location = models.ForeignKey(Country, on_delete=models.CASCADE, related_name="location")
name = models.CharField(max_length=200, db_column="Name")
street_address = models.CharField(max_length=200, db_column="Address")
city = models.CharField(max_length=50, db_column="City")
phone_number = models.IntegerField(default=-1, db_column="Phone Number")
fax_number = models.IntegerField(null=True, blank=True, db_column="Fax Number")
email_address = models.CharField(max_length=200, db_column="Email")
website = models.CharField(max_length=200, db_column="Link")
def __str__(self):
return self.name
现在,当我进入炮弹中时,我想找到与某个国家相关的大使馆:
>>> from appName.models import Country, Embassy
>>> c = Country(code="USA", name="United States of America")
>>> c.save()
>>> Country.objects.all()
<QuerySet [<Country: United States of America>]>
>>> c.embassy_set.all()
Traceback (most recent call last):
File "<console>", line 1, in <module>
AttributeError: 'Country' object has no attribute 'embassy_set'
在具有模型外键的模型上查看django教程时,问题对象的属性是一组选择对象(返回QuerySet)。但是,我的对象没有将对象设置为属性。为什么会这样呢?我怎样才能解决这个问题?Choice
Question
q.choice_set.all()
Country
Embassy
这是因为您已经给出了related_name
引用Country
模型的位置。模型中的Country
两个字段也引用了该字段Embassy
。使用相关名称,您可以执行以下操作:
c.government.all()
这将返回Embassy
国c为政府的所有内容。
c.location.all()
将返回Embassy
居住在国家/地区中的所有物品c。
参考:向后关系
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句