Я хотел бы создать динамическую систему ввода, например, когда я ввожу имя папки - список файлов внутри автоматически отображает другой вход ChoiceField ниже, поэтому я могу выбрать файл. Методы уже написаны, проблема в том, как я могу сделать это в представлении Django?Динамические входы Django
Вот мое мнение:
def get_name(request):
if request.method == 'POST':
form = NameForm(request.POST)
if form.is_valid():
dir_date = format_date(request.POST['date'])
files = os.listdir(os.path.join(path+dir_date))
return render(request, 'inform/show_name.html', {'data': request.POST['your_name'],
'date': format_date(request.POST['date'])})
else:
form = NameForm()
return render(request, 'inform/base.html', {'form': form})
Вот класс формы:
class NameForm(forms.Form):
your_name = forms.CharField(label='Your name', max_length=100)
date = forms.DateField(widget=forms.DateInput(attrs={'class': 'datepicker'}))
flights = forms.ChoiceField(choices=?)
Наконец, вот мой шаблон.
{% extends 'inform/header.html' %}
{% block content %}
<script>
$(function() {
$(".datepicker").datepicker();
$("#anim").on("change", function() {
$("#datepicker").datepicker("option", "showAnim", $(this).val());
});
});
</script>
<div class="container" style="color: red; size: auto;">
<form class="form-vertical" action="get_name" role="form" method="post">
{% csrf_token %}
<div class="form-group" style="display: inherit">
<center>
{{form}}
<input type="submit" value="OK">
</center>
</div>
</form>
</div>
{% endblock %}
Есть ли способ, чтобы динамически считывать данные из входного Дата и передать его методу внутри зрения, не нажимая кнопку отправки или создать несколько других? Если это можно решить только с помощью ajax, jQuery или JS, не могли бы вы дать мне простой пример того, как это делается? Я в значительной степени разочарован неспособностью создать простую форму.
Спасибо заранее!
Да, это так. И вы поняли, что это можно решить, используя ajax. Я покажу вам короткий пример. –