sql >> Database >  >> RDS >> PostgreSQL

Meerdere primaire sleutels voor de tabel app_employee zijn niet toegestaan.

In uw bovenstaande model zijn Meerdere primaire sleutels voor tabel "app_employee" niet toegestaan.

Het komt niet eraan omdat je

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

Omdat in de django-documentatie duidelijk wordt aangegeven dat

Field.primary_keyIf True, dit veld is de primaire sleutel voor het model.

Als u primary_key=True voor geen enkel veld in uw model opgeeft, zal Django automatisch een AutoField toevoegen om de primaire sleutel vast te houden, dus u hoeft primary_key=True niet in te stellen voor een van uw velden, tenzij u de standaard primaire-sleutelgedrag.

primary_key=True impliceert null=False en unique=True. Er is slechts één primaire sleutel toegestaan ​​voor een object.

Ik heb uw model op mijn project geprobeerd en het werkt absoluut prima. Voor de eenvoud heb ik andere velden verwijderd

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

en toen ik dat deed

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

en dan

(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

dus het werkt goed .

Of je maakt je app opnieuw of begint je project gewoon helemaal opnieuw, er kunnen afhankelijkheidsproblemen zijn of zoiets. Maar je code voor model Werknemer is in orde.



  1. Kolomwaarden samenvoegen tot een door komma's gescheiden lijst

  2. Oracle-functievoorbeeld om het aantal dagen tussen twee datums te krijgen

  3. Verbind online mysql-database met de lokale xampp-server met behulp van php

  4. PostgreSQL-opslagdatum in 'Lokale tijdzone' terwijl ik deze met Django op 'UTC' zet