I din ovenstående model er Flere primære nøgler til tabellen "app_employee" ikke tilladt.
Den kommer ikke fordi du har
Aegis_ID = models.UUIDField(primary_key=True, null=False, default=uuid.uuid4, editable=False, serialize=True)
For i django-dokumentation er det tydeligt angivet, at
Field.primary_keyHvis det er sandt, er dette felt den primære nøgle for modellen.
Hvis du ikke angiver primary_key=True for et hvilket som helst felt i din model, tilføjer Django automatisk et autofelt til at holde primærnøglen, så du behøver ikke at indstille primary_key=True på nogen af dine felter, medmindre du vil tilsidesætte standard primærnøgleadfærd.
primary_key=Sand antyder null=Falsk og unik=Sand. Kun én primær nøgle er tilladt på et objekt.
Jeg har prøvet din model på mit projekt, og den fungerer helt fint. For nemheds skyld fjernede jeg andre felter
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")
og da jeg gjorde
(venv) [email protected]:~/firstsite$ python manage.py makemigrations
Migrations for 'employee':
employee/migrations/0001_initial.py
- Create model Employee
og derefter
(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
så det fungerer fint .
Enten du genskaber din app eller starter simpelthen dit projekt forfra, kan være nogle afhængighedsproblemer eller noget. Men din kode til model Medarbejder er okay.