【发布时间】:2017-04-06 02:54:32
【问题描述】:
带有 PostgreSQL 的 Django 1.11。
我去迁移我的站点,models.py 抛出我不能拥有多个主键的错误。我看不到我在哪里(或者我不明白如何)。
class Employee(models.Model):
Aegis_ID = models.UUIDField(primary_key=True, null=False, default=uuid.uuid4, editable=False, serialize=True)
Employee_Number = models.ForeignKey('self', on_delete=models.CASCADE, related_name='Company_Employee_Number',
null=True, blank=True, max_length=6, help_text="Employee ID")
Employee_FName = models.CharField(null=True, blank=True, max_length=25, help_text="First Name")
Employee_LName = models.CharField(null=True, blank=True, max_length=25, help_text="Last Name")
Employee_Email = models.EmailField(max_length=80, blank=True, help_text="GPM Email address")
Employee_Position = models.ForeignKey('self', on_delete=models.CASCADE, null=True, blank=True,
related_name='Department_Employee_Position', max_length=3,
choices=EMPLOYEE_POSITION, help_text="Select position of this Employee.")
Hire_Date = models.DateField(null=True, blank=True, help_text="Enter the employee hire date.")
Employee_Division = models.CharField(max_length=2, null=True, blank=True, choices=DIVISION_CHOICES,
help_text="Assign the Audit Division for this employee.")
Employee_Region = models.CharField(max_length=3, null=True, blank=True, choices=REGION_CHOICES,
help_text="Assign the Audit Region for this employee.")
Employee_District = models.CharField(max_length=3, null=True, blank=True, choices=DISTRICT_CHOICES,
help_text="Assign the Audit District for this Employee.")
阅读关于这个确切主题的 Django 页面,它被列为 1.7 中解决的问题,并且与 Django 如何按字母顺序按类对表进行排序有关。
我也尝试过python manage.py flush,然后是makemigrations,然后是migrate
那么,Django / Postgres 试图创建“id”和“primary”的字段是什么,因为我只是不明白,在这里...
根据关于自动主键的 Django 文档,看不见的是 id = models.AutoField(primary_key=True),但我也明白,如果你将 primary_key=True 分配给一个字段,这不适用
【问题讨论】:
标签: django postgresql