Как передать опции в Django-flatpickr date picker?
Я пытаюсь реализовать выборку времени даты в приложении Django, но у меня возникли проблемы с тем, как передать опции выборщику, используя пакет django-flatpickr --> документация здесь: django-flatpickr.
Документация действительно просто дает вам возможность начать, но не вдается в подробности о том, как применять некоторые опции и фильтр, предоставляемые пакетом flatpickr.js.
Я успешно реализовал основы с полями формы и передачей их в шаблон и из шаблона, и все работает нормально. Однако у меня возникают трудности с передачей опций, т.е. начальной даты, конечной даты, разрешенных дат, убедиться, что даты не могут быть выбраны в прошлом и т.д.
Так что бэкэнд:
forms.py
class DatePickerForm(forms.Form):
id = forms.CharField(widget=forms.HiddenInput)
date_from = forms.DateTimeField(widget=DateTimePickerInput())
date_to = forms.DateTimeField(widget=DateTimePickerInput())
amount = forms.TypedChoiceField(choices=PRODUCT_QUANTITY_CHOICES, coerce=int)
views.py
def check_availability(request):
#Get date time vals from client, pass to check_availabilty to query db
if request.method == 'POST':
form = DatePickerForm(request.POST)
if form.is_valid():
cd = form.cleaned_data
availability = check_availability(cd['id'], cd['date_from'], cd['date_to'], cd['amount'])
else:
print('Not bloody valid')
return HttpResponse(f'Availabilty = {availability}')
ClientSide:
mytemplate.html
<form action="{% url 'check_availability' %}" method="post">
{{ date_form.media }}
{{ date_form.as_p }}
<input type="hidden" name="id" value="{{ rental.id }}">
{% csrf_token %}
<br>
<button type="submit" value="Check Dates">Check Availability</button>
</form>
Итак, что я действительно ищу, так это возможность передать даты, которые не могут быть выбраны, в экземпляр datetime picker (т.е. прошлое, или 300 лет в будущем и т.д.). Я понимаю, что этот пакет не очень хорошо используется, и, возможно, лучше просто сделать это с помощью javascript и передать некоторый JSON, но если кто-нибудь использовал этот пакет и добился успеха, я буду очень благодарен, если вы направите меня в нужном направлении.