PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Множество първични ключове за таблица app_employee не са разрешени.

Във вашия горен модел Множество първични ключове за таблица „app_employee“ не са разрешени.

Тоняма да дойде защото имате

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

Тъй като в документацията на django е ясно посочено, че

Field.primary_key Ако е True, това поле е първичен ключ за модела.

Ако не посочите primary_key=True за което и да е поле във вашия модел, Django автоматично ще добави AutoField за задържане на първичния ключ, така че не е необходимо да задавате primary_key=True на което и да е от вашите полета, освен ако не искате да замените поведение на първичен ключ по подразбиране.

primary_key=True предполага null=False и unique=True. Само един първичен ключ е разрешен за обект.

Изпробвах вашия модел в моя проект и той работи абсолютно добре. За простота премахнах други полета

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

и когато го направих

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

и след това

(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

така че работи добре .

Или пресъздавате приложението си, или просто стартирате проекта си отначало, може да има проблеми със зависимости или нещо подобно. Но вашият код за модел Employee е наред.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Създайте масив от потребителски домейн postgres

  2. PostgreSQL заявка за географска ширина и дължина

  3. Предайте множество набори или масиви от стойности към функция

  4. Postgres не може да слуша конкретен IP адрес

  5. Как да извадите секунди от postgres datetime