Подтвердить что ты не робот

Django Что такое обратная связь?

Может ли кто-нибудь сказать мне, что означает обратная связь? Я начал использовать Django и во многих местах в документации, я вижу "обратную связь", упоминается. Что это значит? почему это полезно? Что это касается связанного_имя ссылки на этот пост?

4b9b3361

Ответ 1

Вот документация на related_name

Допустим, у вас есть 2 модели

class Group(models.Model):
    #some attributes

class Profile(models.Model):
    group = models.ForeignKey(Group)
    #more attributes

Теперь из объекта профиля вы можете сделать profile.group. Но если вы хотите, чтобы объекты профиля задавали объект group, как бы вы это сделали? Thats ', где related name или reverse relationship входит.

Django по умолчанию дает вам значение по умолчанию related_name, которое является ModelName (в нижнем регистре), за которым следует _set - В этом случае это будет profile_set, поэтому group.profile_set.

Однако вы можете переопределить его, указав related_name в поле ForeignKey.

class Profile(models.Model):
    group = models.ForeignKey(Group, related_name='profiles')
    #more attributes

Теперь вы можете получить доступ к внешнему ключу следующим образом:

group.profiles.all()