Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah `related_name` Memudahkan Akses kepada Model Berkaitan dalam `ManyToManyField` dan `ForeignKey` Django?

Bagaimanakah `related_name` Memudahkan Akses kepada Model Berkaitan dalam `ManyToManyField` dan `ForeignKey` Django?

Barbara Streisand
Lepaskan: 2024-12-06 21:44:16
asal
339 orang telah melayarinya

How Does `related_name` Simplify Access to Related Models in Django's `ManyToManyField` and `ForeignKey`?

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'))
Salin selepas log masuk

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!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan