У меня есть модель в следующем формате
model.py
raccntname = models.TextField(max_length=100)
raccntnum = models.TextField(max_length=100)
rLMV = models.DecimalField(max_digits=10, decimal_places=2, null=True)
rSMV = models.DecimalField(max_digits=10, decimal_places=2, null=True)
rcash = models.DecimalField(max_digits=10, decimal_places=2, null=True)
requity = models.DecimalField(max_digits=10, decimal_places=2, null=True)
rLOMV = models.DecimalField(max_digits=10, decimal_places=2, null=True)
rSOMV = models.DecimalField(max_digits=10, decimal_places=2, null=True)
rhousereq = models.DecimalField(max_digits=10, decimal_places=2, null=True)
rhouseexcess = models.DecimalField(max_digits=10, decimal_places=2, null=True)
rregtexcess = models.DecimalField(max_digits=10, decimal_places=2, null=True)
date = models.TextField(max_length=100)
entity = models.TextField(max_length=100)
Я хочу отфильтровать эту модель на основе выбора из приведенных ниже списков объектов
forms.py
class Datechoicefield(forms.Form):
date = forms.ModelChoiceField(
queryset= BNPPBMrgnDecmp.objects.values_list('date', flat=True).distinct(), initial='2/10/2020',
empty_label = None,
)
class entitychoicefield(forms.Form):
entity = forms.ModelChoiceField(
queryset= BNPPBMrgnDecmp.objects.values_list('entity', flat=True).distinct(), initial='VNI3',
empty_label = None,
)
html template
<form method='GET' action="{% url 'update' %}">
{{ date_list }}
{{ entity_list }}
<input type='submit'>
</form>
Выборки из списка объектов передаются в представление с помощью следующего
view.py
def myview(request):
date_list = Datechoicefield()
entity_list = entitychoicefield()
if request.GET.get('date'):
selected_date = request.GET.get('date')
obj = BNPPBMrgnDecmp.objects.filter(date=selected_date)
if request.GET.get('entity'):
selected_entity = request.GET.get('entity')
obj = BNPPBMrgnDecmp.objects.filter(raccntname=selected_entity)
else:
obj = BNPPBMrgnDecmp.objects.filter(date='2/10/2020', entity='VNI3')
Приведенная выше модель должна фильтровать по дате и по сущности. Однако когда объекты из формы выбираются из шаблона html, результаты фильтруются только по дате и выдают данные для ВСЕХ объектов (где выбран только один). Кроме того, оператор else работает для фильтрации на указанную дату / сущность. Что-то не так с моими утверждениями if?