'related_name' работает, если создать объект без сохранения? - PullRequest
1 голос
/ 02 апреля 2019

У меня есть 2 модели django, связанные с ForeignKey. Итак, я могу создать родительский объект и различные дочерние объекты. Я не могу сохранить объекты, но мне нужно получить «related_name». Как я могу это сделать?

# create objects
parent = ParentModel(**serializer_in.validated_data)
child = ChildModel(**serializer_in.validated_data)

# relate objects
child.parent_field = parent

# try get childs
print(parent.child_set.all()) # is empty. why?

Мое имя_связи получит пустой набор запросов. Почему?

1 Ответ

1 голос
/ 02 апреля 2019

Для этого вам нужно сохранить модель child после добавления parent_field, как показано ниже.

для экземпляра,

# create objects
parent = ParentModel(**serializer_in.validated_data)
child = ChildModel(**serializer_in.validated_data)

# relate objects
child.parent_field = parent
child.save() # Save your object

# try get childs
print(parent.child_set.all())

Надеюсь, это сработает для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...