我试图弄清楚如何从我的模型中获取具有ForeignKey关系的数据。我有以下models.py:
class wine(models.Model):
name = models.CharField(max_length=256)
year = models.CharField(max_length=4)
description = models.TextField()
class collection(models.Model):
name = models.CharField(max_length=50)
description = models.TextField(null=True)
class collection_detail(models.Model):
collection = models.ForeignKey(collection)
wine = models.ForeignKey(wine)
quantity = models.IntegerField()
price_paid = models.DecimalField(max_digits=5, decimal_places=2)
value = models.DecimalField(max_digits=5, decimal_places=2)
bottle_size = models.ForeignKey(bottle_size)
Wine是一个基本表,Collection Detail是一个引用wine并将用户特定数据(如付费价格)添加到其中的表。 Collection是一组collection_detail对象。
我正在努力研究如何在这些模型中访问数据。我可以轻松地显示特定模型的数据,但在查看特定集合时,我无法访问collection_detail.wine.name数据。我是否需要编写特定的查询才能执行此操作?我可以从模板语言中访问这些数据吗?通过管理员查看时,我的数据模型显示正确,我可以添加我需要的数据和关系。
感谢您的帮助!
答案 0 :(得分:1)
使用collection_detail_set
获取collection_detail
所有collection
的查询集。
如果你想要一对一的关系而不是一对一的关系(这是你使用ForeignKey
得到的),那就改变
collection = models.ForeignKey(collection)
到
collection = models.OneToOneField(collection)
并只需从collection
模型中调用collection_detail
即可访问collection_detail
的{{1}}。