आपके उपरोक्त मॉडल में तालिका “app_employee” के लिए एकाधिक प्राथमिक कुंजियों की अनुमति नहीं है।
यह नहीं आ रहा है क्योंकि आपके पास
. हैAegis_ID = models.UUIDField(primary_key=True, null=False, default=uuid.uuid4, editable=False, serialize=True)
क्योंकि django प्रलेखन में यह स्पष्ट रूप से निर्दिष्ट है कि
Field.primary_keyयदि सही है, तो यह फ़ील्ड मॉडल की प्राथमिक कुंजी है।
यदि आप अपने मॉडल में किसी भी क्षेत्र के लिए प्राथमिक_की =सही निर्दिष्ट नहीं करते हैं, तो Django स्वचालित रूप से प्राथमिक कुंजी रखने के लिए एक ऑटोफिल्ड जोड़ देगा, इसलिए आपको अपने किसी भी क्षेत्र पर प्राथमिक_की =सही सेट करने की आवश्यकता नहीं है जब तक कि आप ओवरराइड नहीं करना चाहते। डिफ़ॉल्ट प्राथमिक-कुंजी व्यवहार।
प्राथमिक_की=सत्य का अर्थ है शून्य=गलत और अद्वितीय=सत्य। किसी ऑब्जेक्ट पर केवल एक प्राथमिक कुंजी की अनुमति है।
मैंने अपने प्रोजेक्ट पर आपके मॉडल की कोशिश की है और यह बिल्कुल ठीक काम कर रहा है। सादगी के लिए मैंने अन्य क्षेत्रों को हटा दिया
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
तो यह ठीक काम कर रहा है ।
या तो आप अपने ऐप को फिर से बनाएं या बस अपना प्रोजेक्ट फिर से शुरू करें, कुछ निर्भरता के मुद्दे या कुछ और हो सकते हैं। लेकिन मॉडल कर्मचारी के लिए आपका कोड बिल्कुल ठीक है।