Два отдельных списка запросов в одном представлении в Django
Я хочу иметь 2 отдельных списка запросов на одной странице, но с разными фильтрами. Первый список должен воспроизводиться, а второй ставиться на паузу. Вот что я придумал в своем файле views.py, но он выдает такую ошибку: UnboundLocalError at /. локальная переменная 'formset_paused' ссылается перед присвоением
def home_view(request):
#campaigns in progress
queryset = Campaign.objects.filter(is_active=True, completion_percent__lt=100)
if request.method == "POST":
form_type = request.POST.get('id')
if form_type == 'campaign_status':
formset = CampaignStatusFormSet(
request.POST, request.FILES,
queryset=queryset,
)
formset.save()
else:
formset = CampaignStatusFormSet(queryset=queryset)
campaigns_and_forms = list(zip(queryset, formset))
#paused campaigns
queryset_paused = Campaign.objects.filter(is_active=False, completion_percent__lt=100)
if request.method == "POST":
form_type_paused = request.POST.get('id_paused')
if form_type_paused == 'campaign_status_paused':
formset_paused = CampaignStatusFormSet(
request.POST, request.FILES,
queryset=queryset_paused,
)
formset_paused.save()
else:
formset_paused = CampaignStatusFormSet(queryset=queryset_paused)
paused_campaigns_and_forms = list(zip(queryset_paused, formset_paused))
context = {
'formset': formset,
'formset_paused': formset_paused,
'campaigns_and_forms': campaigns_and_forms,
'paused_campaigns_and_forms': paused_campaigns_and_forms,
}
return render(request, 'campaigns_in_progress.html', context)
Вот таблицы в моем шаблоне, где я делаю эти 2 списка.
До добавления второго запроса и второй таблицы все работало.
По сути, я хочу, чтобы, когда фильтр is_active равен True, кампания находилась в первом списке. Если это False, то она должна перейти в другой. Кто-нибудь может мне помочь?
Если request.method == "POST"
но form_type_paused != 'campaign_status_paused'
, то переменная formset_paused
никогда не присваивается. Но вы пытаетесь получить к ней доступ здесь:
...
paused_campaigns_and_forms = list(zip(queryset_paused, formset_paused))
...
Вот откуда берется ошибка.