Вставка данных во всплывающее окно с помощью 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>

Заставьте его работать, изучите структуру выбора в браузере и приступайте к его настройке.

Вернуться на верх