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

Non sono consentite più chiavi primarie per la tabella app_employee.

Nel modello precedente Non sono consentite più chiavi primarie per la tabella "app_employee".

Non sta arrivando perché hai

Aegis_ID = models.UUIDField(primary_key=True, null=False, default=uuid.uuid4, editable=False, serialize=True)

Perché nella documentazione di django è chiaramente specificato che

Field.primary_keySe True, questo campo è la chiave primaria per il modello.

Se non specifichi primary_key=True per nessun campo nel tuo modello, Django aggiungerà automaticamente un AutoField per contenere la chiave primaria, quindi non è necessario impostare primary_key=True su nessuno dei tuoi campi a meno che tu non voglia sovrascrivere il comportamento predefinito della chiave primaria.

primary_key=True implica null=False e unique=True. Su un oggetto è consentita una sola chiave primaria.

Ho provato il tuo modello sul mio progetto e funziona perfettamente. Per semplicità ho rimosso altri campi

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")

e quando l'ho fatto

(venv) [email protected]:~/firstsite$ python manage.py makemigrations
Migrations for 'employee':
employee/migrations/0001_initial.py
- Create model Employee

e poi

(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

quindi funziona bene .

O ricrei la tua app o semplicemente ricominci il tuo progetto da capo, potrebbero essere problemi di dipendenza o qualcosa del genere. Ma il tuo codice per il modello Employee è tutto ok.