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
223 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!

sumber:php.cn
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