sql >> Base de Datos >  >> RDS >> PostgreSQL

No se permiten varias claves primarias para la tabla app_employee.

En su modelo anterior, no se permiten varias claves principales para la tabla "app_employee".

No no viene porque tienes

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

Porque en la documentación de Django se especifica claramente que

Field.primary_keySi es verdadero, este campo es la clave principal del modelo.

Si no especificas primary_key=True para ningún campo en tu modelo, Django agregará automáticamente un AutoField para contener la clave principal, por lo que no necesitas configurar primary_key=True en ninguno de tus campos a menos que quieras anular el comportamiento predeterminado de clave principal.

primary_key=Verdadero implica nulo=Falso y único=Verdadero. Solo se permite una clave principal en un objeto.

Probé su modelo en mi proyecto y funciona absolutamente bien. Para simplificar, eliminé otros 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")

y cuando lo hice

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

y luego

(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

por lo que está funcionando bien .

Ya sea que vuelva a crear su aplicación o simplemente comience su proyecto de nuevo, puede haber algunos problemas de dependencia o algo así. Pero su código para el empleado modelo está bien.