django如何在其models.py中解析外键?

时间:2019-01-09 11:52:42

标签: python django django-models

我想知道django如何确定哪个列或字段将充当“一对多”关系中另一个模型的外键。

class Department(models.Model):
  dept_name = models.CharField(max_length=100)
  dept_head = models.CharField(max_length=100)
  dept_abbrv = models.CharField(max_length=100)


class Employee(models.Model):
  dept = models.ForeignKey(Department)
  emp_name = models.CharField(max_length=100)

现在django如何知道Department的哪一列(dept_name,dept_head或dept_abbrv)将映射到Employee中的“ dept”。 在我的员工详细信息管理页面中,如果我必须添加新员工,则存在一个下拉列表,列出了所有与“ dept”相对的Department.dept_name。 django是如何决定的?为什么它不是dept_head或dept_abbrv的下拉列表?

2 个答案:

答案 0 :(得分:0)

Django会创建一个id作为主键,当使用外键时,除非代码中另有说明,否则Django会将其用作映射。

答案 1 :(得分:0)

您无需指定创建关系的字段。 Django自己知道,他必须选择与您的模型关联的表的主键(id)。

Django负责创建ID本身。您可以在应用程序的迁移文件中看到ID。

Model and migration