Във вашия горен модел Множество първични ключове за таблица „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. Само един първичен ключ е разрешен за обект.
Изпробвах вашия модел в моя проект и той работи абсолютно добре. За простота премахнах други полета
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 е наред.