I have the following in my models.py
from django.db import models
# Create your models here.
class DPlaces(models.Model):
restaurant = models.CharField(blank=False, unique=True, max_length=50)
def __str__(self):
return self.restaurant
class DEntry(models.Model):
place = models.ForeignKey(DPlaces, on_delete=models.CASCADE)
e4date = models.DateField(blank=False)
I have the following in my forms.py
from django import forms
from .models import DEntry, DPlaces
class DEntryFilterForm(forms.Form):
place = forms.ModelMultipleChoiceField(
queryset=DPlaces.objects.all(),
widget=forms.SelectMultiple(attrs={'class': 'form-control'}),
required=False,
)
e4date = forms.ModelMultipleChoiceField(
queryset=DEntry.objects.order_by().values_list('e4date', flat=True).distinct(),
widget=forms.SelectMultiple(attrs={'class': 'form-control'}),
required=False,
)
def __init__(self, *args, **kwargs):
super(DEntryFilterForm, self).__init__(*args, **kwargs)
self.fields['place'].queryset = DPlaces.objects.all()
self.fields['e4date'].queryset = DEntry.objects.values_list('e4date', flat=True).distinct()
in my views.py file I have
def entrytable_view(request):
data_entries = DEntry.objects.all()
filtered_entries = None
if request.method == 'GET':
form = DEntryFilterForm(request.GET)
if form.is_valid():
# Do Something
The form works and form.is_valid returns true if a choice on ‘place’ field is selected but fails and form.is_valid returns false if a choice on ‘e4date’ field is selected.
I suspect this is because the e4date field is not on the DPlaces model (it is on the DEntry model), but I am not sure. I any case, I am clueless on how to get this working. Any help is appreciated.