Вставка данных во всплывающее окно с помощью Django
В моем проекте Django я хочу, чтобы выбор учреждения выбирался из списка, для этого я создал модель для названия учреждения, и я хочу, чтобы пользователь вводил его в виде всплывающего окна или выбора из списка: models.py
<views.py
def getInstitutionName(request):
context = {'institutionName':Institution.objects.all()}
return HttpResponse(context)
Я создал его в форме html, но у меня проблемы с тем, как интегрировать данные, которые я привожу здесь, с html. При этом я хочу сделать форму, включающую другие записи, только запись об учреждении таким образом. Мой вопрос по этому поводу заключается в том, какие действия я должен предпринять при печати данных, которые я привел здесь, на экран.
Django предоставляет поле формы ModelChoiceField. Когда это поле формы отображается, оно по умолчанию генерирует <select>
с <option>
для каждого экземпляра в наборе запросов.
Вы можете либо преобразовать это с помощью Javascript, либо написать (или найти) свой собственный виджет для использования с этим полем, чтобы генерировать HTML, который вы хотите.
Я бы начал с написания представления с такой формой и без всяких наворотов. Когда он будет работать, тогда начните развивать его в искомое всплывающее окно.
class InstitutionSelectForm ( forms.Form):
institution = forms.ModelChoiceField(
queryset = Institution.objects.all(),
)
# other fields
class InstitutionSelectView( FormView):
form_class = InstitutionSelectView
template_name = 'myapp/institution_select.html'
def form_valid( self, form):
institution_instance = form.cleaned_data['institution']
# do whatever is called for with this institution and
# any other form fields
return HttpResponseRedirect( reverse( ...))
Для начала, очень простой шаблон для отображения формы:
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Submit">
</form>
Заставьте его работать, изучите структуру выбора в браузере и приступайте к его настройке.