PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Várias chaves primárias para a tabela app_employee não são permitidas.


No modelo acima, Múltiplas chaves primárias para a tabela “app_employee” não são permitidas.

Ele não está chegando porque você tem
Aegis_ID = models.UUIDField(primary_key=True, null=False, default=uuid.uuid4, editable=False, serialize=True)

Porque na documentação do django está claramente especificado que

Field.primary_keyIf True, este campo é a chave primária para o modelo.

Se você não especificar primary_key=True para qualquer campo em seu modelo, o Django adicionará automaticamente um AutoField para manter a chave primária, então você não precisa definir primary_key=True em nenhum de seus campos, a menos que você queira substituir o comportamento de chave primária padrão.

primary_key=True implica null=False e unique=True. Apenas uma chave primária é permitida em um objeto.

Eu tentei seu modelo no meu projeto e está funcionando perfeitamente. Para simplificar, removi outros campos
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 eu fiz
(venv) [email protected]:~/firstsite$ python manage.py makemigrations
Migrations for 'employee':
employee/migrations/0001_initial.py
- Create model Employee

e depois
(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

então está funcionando bem .

Ou você recria seu aplicativo ou simplesmente inicia seu projeto novamente, pode haver alguns problemas de dependência ou algo assim. Mas seu código para o modelo Employee está ok.