Memohon Related_name pada ManyToManyField dan ForeignKey untuk Akses Ringkas
Soalan:
Apakah itu tujuan argumen related_name untuk ManyToManyField dan ForeignKey padang? Pertimbangkan contoh di bawah:
class Map(db.Model): members = models.ManyToManyField(User, related_name='maps', verbose_name=_('members'))
Apakah kesan mentakrifkan related_name='maps' pada model Pengguna?
Jawapan:
Atribut related_name mentakrifkan nama perhubungan terbalik daripada model yang dirujuk (dalam kes ini, Pengguna) kembali kepada model semasa (Peta). Biasanya, Django secara automatik mencipta hubungan songsang dengan akhiran _set, tetapi menyatakan nama_terkait tersuai menyediakan cara yang lebih ringkas untuk mengakses objek berkaitan.
Dalam contoh yang disediakan, jika kita mempunyai objek Pengguna bernama current_user, kita boleh mengakses peta yang dikaitkan dengannya menggunakan current_user.maps.all(). Ini lebih mudah daripada sintaks perhubungan songsang lalai, iaitu current_user.map_set.all().
Nama_berkaitan juga boleh ditetapkan kepada ' ' untuk melumpuhkan penciptaan hubungan songsang sepenuhnya.
Atas ialah kandungan terperinci Bagaimanakah `related_name` Memudahkan Akses kepada Model Berkaitan dalam `ManyToManyField` dan `ForeignKey` Django?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!