【发布时间】:2020-08-08 04:03:20
【问题描述】:
在 SQL 中,您可以将表属性设置为外键,其中该外键是被引用表的属性。
在 Django 模型中,models.ForeignKey() 引用一个对象。是否可以引用字段而不是对象?如果不是,我们应该如何设计模型以使我们可以使用引用的对象。
例如,如果我有以下表格。我可以在 SQL 中做到这一点:
pk
courseList(course_id, course_title, professor, day, time)
pk
TutoringClassList(course_id, tutor_id)
这里,TutoringClassList 中的course_id 是courseList 中的course_id 的外键
然而,Django 会为TutoringClassList 提供类似的东西
TutoringClassList(course, tutor)
其中course 是引用courseList 的模型外键对象,tutor(我们假设也创建了TutorList 模型)也是引用TutorList 的模型对象
最终目标
我想存储外键的属性而不是对象。如果我不能这样做,那么为该对象操作该属性值的最佳方法是什么?
【问题讨论】:
-
不清楚你在问什么,你能举个例子说明你想达到什么吗?您可以通过将
_id附加到字段名称来访问ForeignKey字段的原始值,如果这是您的意思吗? -
您可以传递
ForeignKey的原始值,而不是 Django 中的对象:TutoringClassList(course_id=course.id, tutor_id=tutor.id) -
@IainShelvington 所以看起来应该是这样的:
course_id = course.id而不是course = models.ForeignKey(course, on_delete....) -
你想定义一个
ForeignKey但不传递引用的模型? -
是的。属性的
ForeignKey,就像在sql中一样。假设这是可能的
标签: sql django django-models