Django secara otomatis membuat field id sebagai kunci utama.
Sekarang saya perlu mendapatkan objek dengan id ini.
object = Class.objects.filter()
Bagaimana cara menulis filter ini?
django
django-models
django-orm
pengguna469652
sumber
sumber
pk
adalah cara yang disukai untuk merujuk ke kunci utama untuk model apa pun. Theid
lapangan hanya dihasilkan jika penulis Model tidak secara khusus menunjuk kunci utama. Jika penulis melakukan menentukan bidang kunci utama yang tidak bernamaid
, maka tidak akan menjadiid
lapangan.id
dalam fungsi built-in yang mengembalikan identitas suatu objek. Dalam kebanyakan kasus, merujuk sesuatu denganid
akan melakukan hal yang benar, misalnyaClass.objects.get(id=this_object_id)
bekerja. Tapi kurasa itu sesuatu yang perlu dipertimbangkan.Saya sampai di sini karena masalah yang sama, tetapi untuk alasan yang berbeda:
Kode ini memunculkan pengecualian ImportError. Yang membingungkan saya adalah bahwa kode di bawah ini dieksekusi dengan baik dan mengembalikan hasil yang ditetapkan seperti yang diharapkan:
Ekor pelacakan balik untuk
get()
metode ini:Membaca kode di dalam Django
loading.py
, saya sampai pada kesimpulan bahwa sayasettings.py
memiliki jalur yang buruk ke aplikasi saya yang berisiClass
definisi model saya . Yang harus saya lakukan hanyalah memperbaiki jalur ke aplikasi danget()
metode dijalankan dengan baik.Ini saya
settings.py
dengan jalur yang dikoreksi:)
Semua kebingungan disebabkan karena saya menggunakan ORM Django sebagai standalone, jadi namespace harus mencerminkan itu.
sumber
Anda juga bisa melakukan:
Ini bekerja, tetapi mungkin saya tidak yakin apakah itu didukung di Django 2.
sumber
Kamu bisa memakai:
Ini akan mengembalikan satu set kueri meskipun mendapat satu objek. Jika Anda membutuhkan tepat satu objek, gunakan:
sumber
Anda juga dapat menggunakan pintasan get_object_or_404 django. Ini menimbulkan kesalahan 404 jika objek tidak ditemukan.
sumber