#python #django #django-models #django-queryset
#python #django #django-модели #django-набор запросов
Вопрос:
Здесь, если созданный объект я хочу использовать этот объект в другой модели. Как я могу это сделать? Я полагаю created
, возвращает логическое значение, так как я могу получить созданный объект?
value, created = MyModel.objects.get_or_create(field1=field1, field2=field2)
if created:
another_model_obj.manytomanyfield.add(created)
Ответ №1:
Вы должны использовать value
, это объект, который создается:
value, created = MyModel.objects.get_or_create(field1=field1, field2=field2)
if created:
another_model_obj.manytomanyfield.add(value) # ← use value
Метод .get_or_create(…)
[Django-doc] возвращает 2-кортеж:
Возвращает кортеж
(object, created)
, гдеobject
находится извлеченный или созданный объект, иcreated
является логическим значением, указывающим, был ли создан новый объект.
Итак, первая строка «распаковывает» 2-кортеж на две переменные value
и created
где value
находится объект, который либо получен (если он уже существует), либо создан (если он еще не существует).
Комментарии:
1. Спасибо за информацию. Изначально я думал
value
, что возвращает только в том случае, если объекты уже существуют.