Do czego służy `related_name` w Django?

Do czego służy related_name" w polach ManyToManyField i ForeignKey ? Biorąc pod uwagę poniższy kod, jaki jest efekt related_name='maps' ?


class Map(db.Model): members = models.ManyToManyField(User, related_name='maps', verbose_name=_('members'))

1 odpowiedź

Atrybut related_name określa nazwę odwrotnej relacji z modelu użytkownika z powrotem do Twojego modelu. Jeśli nie podasz nazwy pokrewnej, Django automatycznie utworzy ją za pomocą nazwy Twojego modelu z suffix set, na przykład User.map_set.all ().

Jeśli podajesz np, related_name=maps w modelu użytkownika, User.map_set nadal będzie działał. Składnia jest oczywiście nieco bardziej przejrzysta; więc np. jeśli masz obiekt użytkownika current_user, możesz użyć current_user.maps.all (), aby uzyskać wszystkie instancje modelu mapy, które mają związek z current_user.

Mam nadzieję, że pomogłem. Pozdrawiam :)

Twoja odpowiedź

Zaloguj się aby odpowiedzieć.

Operiada

Operiada to polskojęzyczne forum informatyczne działające na zasadzie pytań i odpowiedzi.

Obserwowane tagi

Zaloguj się aby obserwować tagi.