Как использовать созданные объекты из метода get_or_create?

#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 , что возвращает только в том случае, если объекты уже существуют.