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 :)