k8004kv
February 14, 2023, 6:11pm
1
How to export two querysets into one Model Django?
How can I write values from two querysets to the columns of the model table through a loop or in some other way?
–
for all rows in querysets:
queryset_1
last_row = queryset_1.last()
values_1 = last_row.name_1
values_2 = last_row.name_2
new_entry = Model_3(name_1=values_1, name_2=values_2)
new_entry.save()
queryset_2
last_row = queryset_2.last()
values_3 = last_row.name_3
values_4 = last_row.name_4
new_entry = Model_3(name_3=values_3, name_4=values_4)
new_entry.save()
Depending upon the amount of data involved, you can use either the create
or bulk_create
methods.
k8004kv
February 14, 2023, 8:12pm
3
queryset_1_min = queryset_1_filter.filter(pk__lte=limit)
queryset_2_min = queryset_2_filter.filter(pk__lte=limit)
queryset_3_min = queryset_3_filter.filter(pk__lte=limit)
for item in queryset_1_min:
values_1 = item.datetime
values_2 = item.temper_1
values_3 = item.temper_2
values_4 = item.g_rashod
values_5 = item.temper_nv
new_entry = Model_upload_summ(datetime=values_1, temper_1=values_2, temper_2=values_3, g_rashod=values_4, temper_nv=values_5)
# entry = Model_upload_summ(**item)
new_entry.save()
transaction.commit()
sqlite3.IntegrityError: NOT NULL constraint failed: application_model_upload_summ.temper_1_gvs
and add several data from queryset_2_min into Model_upload_summ
maybe ? =>
for item, item_2 in queryset_1_min, queryset_2_min:
values_1 = item.datetime
values_2 = item.temper_1
values_3 = item.temper_2
values_4 = item.g_rashod
values_5 = item.temper_nv
values_6 = item_2.temper_10
You’re looking for the Python zip function if those three models are all going to have the same values “in parallel”.
You could do something like:
for row in zip(queryset_1, queryset_2, queryset_3):
NewModel(
field_1 = row[0].field_name_1, # row[0] is the entry from queryset_1
field_2 = row[0].field_name_2,
field_3 = row[0].field_name_3,
field_4 = row[1].field_name_1, # row[1] is the entry from queryset_2
field_5 = row[1].field_name_2,
field_6 = row[2].field_name_1, # row[2] is the entry from queryset_3
).save()