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 объектов

Вернуться на верх