Ada baris ini dalam tutorial Django, Menulis aplikasi Django pertama Anda, bagian 1 :
p.choice_set.create(choice='Not much', votes=0)
Bagaimana choice_set
dipanggil menjadi ada dan apakah itu?
Saya kira choice
bagian itu adalah versi huruf kecil dari model yang Choice
digunakan dalam tutorial, tetapi apa itu choice_set
? Bisakah Anda menguraikan?
UPDATE: Berdasarkan jawaban Ben , saya menemukan dokumentasi ini: Mengikuti hubungan "terbelakang" .
Jawaban:
Anda membuat kunci asing
Choice
yang terkait masing-masing denganQuestion
.Jadi, masing-masing
Choice
secara eksplisit memilikiquestion
bidang, yang Anda nyatakan dalam model.ORANG Django mengikuti hubungan mundur dari
Question
juga, secara otomatis menghasilkan bidang pada setiap contoh yang disebut difoo_set
manaFoo
model denganForeignKey
bidang ke model itu.choice_set
adalah suatuRelatedManager
yang dapat membuat querysetsChoice
objek yang berhubungan denganQuestion
instance, misalnyaq.choice_set.all()
Jika Anda tidak suka
foo_set
penamaan yang dipilih Django secara otomatis, atau jika Anda memiliki lebih dari satu kunci asing untuk model yang sama dan perlu membedakannya, Anda dapat memilih nama utama Anda sendiri menggunakanrelated_name
argumen untukForeignKey
.sumber
RelatedManager
yang dapat membuat kueri.