İki Tane Primary Key

Sqlite3 bir tabloda iki tane primary key tanımlayamadım. İki tane tanımlanmıyor mu acaba. İki tablom var.
birinci tablom da il listesi, ikinci tablomda ilçe listesi. İkinci tabloda ilçe yazıp, il alanına birinci tablodaki il adını çekmek istiyorum.

http://127.0.0.1:8000/admin/ açtığımda

OperationalError at /admin/
no such table: django_session
Request Method: GET
Request URL: http://127.0.0.1:8000/admin/
Django Version: 1.10.8
Exception Type: OperationalError
Exception Value:
no such table: django_session
Exception Location: C:\Python\lib\site-packages\django\db\backends\sqlite3\base.py in execute, line 337
Python Executable: C:\Python\python.exe
Python Version: 3.6.3
Python Path:
[‘C:\PYTHON_PROJECT’,
‘C:\Python\python36.zip’,
‘C:\Python\DLLs’,
‘C:\Python\lib’,
‘C:\Python’,
‘C:\Python\lib\site-packages’]
Server time: Pzt, 27 Kas 2017 13:47:27 +0300

Bu hatayı nasıl düzeltebilirim.

Merhaba.

Primary key her tablo için bir tane ve eşsiz olmalı. Örneğin; her tablo için bunu id olarak düşünebilirsiniz. İlçe tablonuzdaki il_id ise primary key değil foreign key’dir ve eşsiz olması gerekmez.

Ancak hatanın bundan kaynaklandığını sanmıyorum. Migration’ları çalıştırdınız mı, çünkü Django’nun kullandığı django_session tablosunun bulunamadığını söylüyor hata: no such table: django_session. Bu tablo Django’nun otomatik oluşturulan yönetici arayüzü için gerekli sanıyorum ki: no such table: django_session. INSTALLED_APPS'e bunu ekleyip python manage.py migrate komutunu çalıştırmadığınızı düşünüyorum.

İyi çalışmalar.

Teşekkür ederim . Sağolun

1 Beğeni

izin uygulamasında il class ında

id = models.AutoField(primary_key=True) #yazdım. python manage.py migrate izin dediğimde

django.db.utils.IntegrityError: UNIQUE constraint failed: izin_il.id eşsiz ile ilgili hata verdi. Daha önce id = models.AutoField(primary_key=True, unique=True) yapmıştım.

Düzeltmeye çalışıyorum olmuyor. Artık id tanımlamasını ben yapmicam. Otomatik kendisi yapsın istiyorum. Nasıl düzeltebilirim.

id = models.AutoField(primary_key=True) satırını sildim. tekrar python manage.py migrate dediğimde yine aynı hatayı veriyor. bir defa unique ekledim, hatadan kurtulamadım.

django.db.utils.IntegrityError: UNIQUE constraint failed: izin_il.id

Diğer bir sorum ise class ile oluşturduğum tabloyu nasıl kaldırabiliri?

Merhaba.

Django ID’yi kendisi oluşturuyor dediğiniz gibi. model’dan ID’yi sildiniz, peki python manage.py makemigrations komutu ile bunun migration’ını oluşturdunuz mu?

Sanıyorum ki Django’da tablo silmek ORM ile olmuyor. Şurada SQL ile silmenin bir yolu var: https://stackoverflow.com/a/17041402/1583714

İyi çalışmalar.