PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

तालिका app_employee के लिए एकाधिक प्राथमिक कुंजियों की अनुमति नहीं है।

आपके उपरोक्त मॉडल में तालिका “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

तो यह ठीक काम कर रहा है

या तो आप अपने ऐप को फिर से बनाएं या बस अपना प्रोजेक्ट फिर से शुरू करें, कुछ निर्भरता के मुद्दे या कुछ और हो सकते हैं। लेकिन मॉडल कर्मचारी के लिए आपका कोड बिल्कुल ठीक है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Linux पर PostgreSQL में कॉन्फ़िगरेशन पैरामीटर work_mem

  2. पोस्टग्रेएसक्यूएल और जेपीए/हाइबरनेट के साथ प्वाइंट प्रकार का प्रयोग करें

  3. लोचदार बीनस्टॉक पर psycopg2 - ऐप को तैनात नहीं कर सकता

  4. तालिका के लिए केवल एक पंक्ति की अनुमति कैसे दें?

  5. postgresql क्वेरी पर शून्य मान डालें