сохранить набор запросов модели django в другую модель

#python #django #django-models

#python #django #django-модели

Вопрос:

У меня есть две модели Django

 class Invoice(models.Model):
      id              = models.IntegerField()
      is_converted    = models.BooleanField(default=False)
 

эта модель хранит информацию о счетах и предложениях

и другая модель, содержащая детали элементов конкретного счета-фактуры / предложения

 class Items(models.Model):
      document        = models.Foreignkey(Invoice, on_delete=models.CASCADE)
      price           = models.DecimalField(max_digits=8, decimal_places=2)
      name            = models.CharField(max_length=50)
 

теперь я хочу преобразовать запись предложения из модели Invoice в счет-фактуру продажи

Я скопировал данные из строки Invoice модели в другую строку (так как я также хочу сохранить запись цитаты)

Моя проблема заключается в копировании элементов из Item модели записи предложения во вновь созданную запись счета.

Я пробовал это

 quotation_items = Items.objects.filter(document=id)
 

это возвращает обычный набор запросов

 <QuerySet [<items: items object (238)>, <items: items object (240)>, <items: items object (241)>]>
 

Теперь я хочу сохранить эти записи в Items модели для преобразованных счетов-фактур.

Есть ли какой-либо способ сохранения наборов запросов в модели Django?

Комментарии:

1. Для массового создания вы можете использовать bulk_create

Ответ №1:

Я решил эту проблему bulk_create благодаря комментарию @Marat

 quotation_items = Items.objects.filter(document=id)

new_item_list = []

    for item_obj in quotation_items:
        item_obj.pk = None                 
        item_obj.document = new_obj          # newly created invoice intance
        new_item_list.append(item_obj)

    tbl_invoice_description.objects.bulk_create(new_item_list)
 

Я хочу скопировать наборы запросов в новые строки с измененными столбцами pk и document