PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Beberapa kunci utama untuk tabel app_employee tidak diperbolehkan.

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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Goroutine memblokir kumpulan koneksi

  2. Akankah UUID sebagai kunci utama di PostgreSQL memberikan kinerja indeks yang buruk?

  3. postgres:dapatkan kueri yang dapat dieksekusi dari kueri dengan parameter

  4. Terjadi kesalahan saat menginstal pg (0.18.2), dan Bundler tidak dapat melanjutkan

  5. Cara membuat batasan pengecualian dengan rentang tanggal menggunakan sqlalchemy