上記のモデルでは、テーブル「app_employee」の複数の主キーは許可されていません。
来ない あなたが持っているので
Aegis_ID = models.UUIDField(primary_key=True, null=False, default=uuid.uuid4, editable=False, serialize=True)
djangoのドキュメントでは、次のように明確に指定されているためです
Field.primary_key Trueの場合、このフィールドはモデルの主キーです。
モデルのどのフィールドにもprimary_key=Trueを指定しない場合、Djangoは主キーを保持するAutoFieldを自動的に追加するため、オーバーライドする場合を除いて、どのフィールドにもprimary_key=Trueを設定する必要はありません。デフォルトの主キーの動作。
primary_key =Trueは、null=Falseおよびunique=Trueを意味します。オブジェクトで許可される主キーは1つだけです。
私は自分のプロジェクトであなたのモデルを試しましたが、それは完全に正常に機能しています。簡単にするために、他のフィールドを削除しました
from __future__ import unicode_literals
from django.db import models
import uuid
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")
そして私がしたとき
(venv) [email protected]:~/firstsite$ python manage.py makemigrations
Migrations for 'employee':
employee/migrations/0001_initial.py
- Create model Employee
そして
(venv) [email protected]:~/firstsite$ python manage.py migrate
Operations to perform:
Apply all migrations: admin, auth, contenttypes, employee, sessions
Running migrations:
Applying employee.0001_initial... OK
したがって、正常に機能しています 。
アプリを再作成するか、プロジェクトを最初からやり直すだけで、依存関係の問題などが発生する可能性があります。ただし、モデルEmployeeのコードはすべて問題ありません。