Djagngo получить все .objects.filter() с условием
У меня есть таблица Batch с большим количеством столбцов
Column Type Comment
id bigint(20) Auto Increment
start_date datetime(6) NULL
acerage double
batch_health int(11) NULL
stage varchar(100) NULL
expected_delivery_date datetime(6) NULL
current_pdd double NULL
historic_pdd double NULL
current_gdd double NULL
historic_gdd double NULL
sub_farmer_id int(10) unsigned NULL
batch_status varchar(100)
commodity_id int(10) unsigned NULL
commodity_variety_id int(10) unsigned NULL
farm_id bigint(20) NULL
created_at datetime(6)
created_by_id int(10) unsigned NULL
updated_at datetime(6)
updated_by_id int(10) unsigned NULL
actual_produce double NULL
actual_yield_per_acre double NULL
expected_produce double NULL
historical_yield_per_acre double NULL
sop_adherence double NULL
end_date datetime(6) NULL
batch_median_health int(10) unsigned NULL
batch_name varchar(200) NULL
commodity_name varchar(200) NULL
pending_tasks int(10) unsigned NULL
pest_attack varchar(500) NULL
когда я пытаюсь получить объект из этой таблицы следующим образом
Batch.objects.filter(farm_id = farm_id, batch_status='completed')
Переменная farm_id уже определена тогда я должен получить все столбцы данных для этой партии. Но я не получаю ВСЕ столбцы, я получаю только имя партии в качестве выходных данных
(2706) Papaya | 2021-03-18
(2707) Papaya | 2021-03-18
Как я могу получить все столбцы в dict? и чтобы я мог использовать это в фильтре batchyield
batch_id Is a foreign key in batchyield which is batch table ID
и получить пакетный вывод всех данных по
Batchyield.objects.filter(batch_id=batch_id)
Попробуйте это:
batch_ids = Batch.objects.filter(
farm_id = farm_id, batch_status='completed'
).values_list('id', flat=True)
batch_yields = Batchyield.objects.filter(id__in=batch_ids)
values_list('id', flat=True) возвращает кверисет id столбцов Batch объектов