django - 在 django 模型中的表之间链接外键
问题描述
我刚开始使用 Django,所以请帮助我解决我的疑问。目前,我有三个表 Topic、Webpage 和 AccessRecord。在第三个表AccessRecord中,我将 ForeignKey 与第二个表Webpage一起使用。但是网页表有三个属性主题、名称和 URL ..所以我怀疑这三个属性中的哪个属性将被视为AccessRecord表的外键。任何帮助将不胜感激。
class Topic(models.Model):
top_name = models.CharField(max_length=264,unique = True)
def __str__(self):
return(self.top_name)
class Webpage(models.Model):
topic = models.ForeignKey(Topic,on_delete=models.CASCADE)
name = models.CharField(max_length=264,unique=True)
url = models.URLField(unique=True)
def __str__(self):
return self.name
class AccessRecord(models.Model):
name = models.ForeignKey(Webpage,on_delete=models.CASCADE)
date = models.DateField()
def __str__(self):
return str(self.date)
解决方案
实际上,ForeignKey 关系是 fromAccessRecord
到Webpage
object,它只存在于AccessRecord
. Webpage
a与AccessRecord
object之间没有直接关系。相反,django 提供了一个可以从reverse relationship
对象访问查询集的地方。像这样:AccessRecord
Webpage
webpage = Webpage.objects.first() # an object
records = webpage.accessrecord_set.all() # a queryset
如果您遍历records
上面给出的变量,您将获得AccessRecord
对象。像这样:
for record in records:
print(record) # an AccessRecord object
推荐阅读
- python - TensorFlow 2 对象检测 API 模型评估
- javascript - 图像未在文本编辑器中显示和上传 - Strapi 无头 CMS 中的 CKEditor
- javascript - 响应式 SVG 和 JavaScript 的问题
- vue.js - 打开下拉列表,点击输入 vue js
- docker - AWS ECS Docker 容器上的 Haproxy “退出代码 0”
- javascript - 叶图填补手机空白
- c# - 对 MySql 数据库的异步数据库调用给出错误
- php - 在 PHP 中使用 gmail API 的用户的别名列表
- javascript - 即使存在捕获处理程序,也未处理的承诺拒绝
- php - 在 null 上调用成员函数 - 从多对多关系中检索数据