Trong mô hình ở trên của bạn, Nhiều khóa chính cho bảng “app_employee” không được phép.
Nó không đến bởi vì bạn có
Aegis_ID = models.UUIDField(primary_key=True, null=False, default=uuid.uuid4, editable=False, serialize=True)
Bởi vì trong tài liệu django đã chỉ rõ rằng
Field.primary_keyNếu Đúng, trường này là khóa chính cho mô hình.
Nếu bạn không chỉ định primary_key =True cho bất kỳ trường nào trong mô hình của mình, Django sẽ tự động thêm Trường tự động để giữ khóa chính, vì vậy bạn không cần đặt primary_key =True trên bất kỳ trường nào trừ khi bạn muốn ghi đè hành vi khóa chính mặc định.
primary_key =True ngụ ý null =False và duy nhất =True. Chỉ một khóa chính được phép trên một đối tượng.
Tôi đã thử mô hình của bạn trong dự án của tôi và nó đang hoạt động hoàn toàn tốt. Để đơn giản hơn, tôi đã xóa các trường khác
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")
và khi tôi đã làm
(venv) [email protected]:~/firstsite$ python manage.py makemigrations
Migrations for 'employee':
employee/migrations/0001_initial.py
- Create model Employee
và sau đó
(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
vì vậy nó hoạt động tốt .
Hoặc bạn tạo lại ứng dụng của mình hoặc đơn giản là bắt đầu lại dự án của mình, có thể là một số vấn đề phụ thuộc hoặc điều gì đó. Nhưng mã của bạn cho nhân viên kiểu mẫu đều ổn.