sql >> Databasteknik >  >> RDS >> PostgreSQL

Flera primärnycklar för tabellen app_employee är inte tillåtna.

I modellen ovan är Flera primärnycklar för tabellen "app_anställd" inte tillåtna.

Den kommer inte eftersom du har

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

För i django-dokumentationen är det tydligt specificerat att

Field.primary_keyOm sant är detta fält den primära nyckeln för modellen.

Om du inte anger primary_key=True för något fält i din modell kommer Django automatiskt att lägga till ett AutoField för att hålla primärnyckeln, så du behöver inte ställa in primary_key=True på något av dina fält om du inte vill åsidosätta standardbeteende för primärnyckeln.

primary_key=True innebär null=False och unikt=True. Endast en primärnyckel är tillåten på ett objekt.

Jag har provat din modell på mitt projekt och den fungerar alldeles utmärkt. För enkelhetens skull tog jag bort andra fält

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

och när jag gjorde det

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

och sedan

(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

så det fungerar bra .

Antingen återskapar du din app eller helt enkelt startar ditt projekt om igen, kan vara beroendeproblem eller något. Men din kod för modellanställd är okej.



  1. Hur avinstallerar / tar man bort Oracle 11g (klient) helt?

  2. Validera url för flerspråkig - japanska langauga

  3. Django. PostgreSQL. regexp_split_to_table fungerar inte

  4. MySQL - tvinga att inte använda cache för att testa frågans hastighet