sql >> Database teknologi >  >> RDS >> PostgreSQL

Flere primære nøgler til tabel app_employee er ikke tilladt.

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.



  1. Fejl ved indlæsning af oci8.so med Ubuntu server 17.04 php 7 og apache2

  2. De 8 mest populære databaser

  3. SQL Injection Protection - enkelte anførselstegn

  4. Laravel kan ikke oprette forbindelse til database - Migrationer - Fejl 2002