Dalam model Anda di atas Beberapa kunci utama untuk tabel “app_employee” tidak diizinkan.
Itu tidak datang karena Anda memiliki
Aegis_ID = models.UUIDField(primary_key=True, null=False, default=uuid.uuid4, editable=False, serialize=True)
Karena dalam dokumentasi Django secara jelas ditentukan bahwa
Field.primary_keyJika Benar, kolom ini adalah kunci utama untuk model.
Jika Anda tidak menentukan primary_key=True untuk bidang apa pun dalam model Anda, Django akan secara otomatis menambahkan BidangOtomatis untuk menahan kunci utama, jadi Anda tidak perlu menyetel primary_key=True pada bidang mana pun kecuali Anda ingin menimpa perilaku kunci utama default.
primary_key=True menyiratkan null=False dan unique=True. Hanya satu kunci utama yang diperbolehkan pada suatu objek.
Saya telah mencoba model Anda pada proyek saya dan itu berfungsi dengan baik. Untuk kesederhanaan, saya menghapus bidang lain
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")
dan ketika saya melakukannya
(venv) [email protected]:~/firstsite$ python manage.py makemigrations
Migrations for 'employee':
employee/migrations/0001_initial.py
- Create model Employee
lalu
(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
jadi berfungsi dengan baik .
Entah Anda membuat ulang aplikasi Anda atau memulai proyek Anda dari awal lagi, mungkin ada beberapa masalah ketergantungan atau sesuatu. Tetapi kode Anda untuk model Karyawan semuanya baik-baik saja.