Шаблон Django не передается из контекста формы - PullRequest
0 голосов
/ 09 мая 2018

На моем сайте я пытаюсь создать шаблон, который автоматически отображает поля формы в моей модели. Я передаю экземпляр формы в моем представлении с использованием рендера, но шаблон не распознает форму и не отображает ни одно из полей ввода

views.py:

def create_booking(request):
if request.method == 'POST':
    form = BookingsForm(request.POST)
    form2 = BookingsFormRecurring(request.POST)
    if form.is_valid() and form2.is_valid():
        booking = form.save()
        bookingRecurring = form2.save()
        return redirect("confirm")
else:
    form = BookingsForm()
    form2 = BookingsFormRecurring()

return render(request, 'makebooking.html', { 'form': form, 'form2': form2})

forms.py

class BookingsForm(forms.ModelForm):

    studentUsername = 'test'
    startingDate = forms.DateInput()
    teacherID = forms.CharField(label = 'Select teacher', widget=forms.Select(choices=TeacherCHOICES))
    startingTime = forms.CharField(label = 'Available starting times', widget=forms.Select(choices=TimeCHOICES))
    lessonDuration = forms.CharField(label = 'For how long?', widget=forms.Select(choices=DURATION_CHOICES))
    instrumentFocus = forms.CharField(label = 'Which instrument?', widget=forms.Select(choices=INSTRUMENTS_CHOICES))

    class Meta:
        model = bookingsModel
        fields = ('teacherID', 'startingDate', 'startingTime', 'lessonDuration', 'instrumentFocus')
        widgets = {
        'startingDate': DateInput()
    }

class BookingsFormRecurring(forms.ModelForm):

    lessonRepeat = forms.CharField(label = "How often?", widget=forms.Select(choices=REPEATS_CHOICES), required=False)
    secondaryLessonDay = forms.CharField(label = "Secondary lesson day", widget=forms.Select(choices=LESSON_DAY_CHOICES), required=False)
    secondaryLessonTime = forms.CharField(label = "Secondary lesson time", widget=forms.Select(choices=TimeCHOICES), required=False)
    tertiaryLessonDay = forms.CharField(label = "Third lesson day", widget=forms.Select(choices=LESSON_DAY_CHOICES), required=False)
    tertiaryLessonTime = forms.CharField(label = "Third lesson time", widget=forms.Select(choices=TimeCHOICES), required=False)


    class Meta:
        model = bookingsModelRecurring
        fields = ('lessonRepeat', 'secondaryLessonDay', 'secondaryLessonTime', 'tertiaryLessonDay', 'tertiaryLessonTime')

makebooking.html (template)

....

<div class="container">
<div class="card-panel blue-grey darken-1 white-text">
    <h3>Make a lesson booking here!</h3>

{% if user.is_authenticated %}


<div class="row">
    <form class="booking" id="booking" action="" method="post">
    {% csrf_token %}
    <div class="col s4">

    <br><br>

        {% for field in form %}
            <p>
                {{ field.label_tag }}<br>
                {{ field }}
                {% if field.help_text %}
                    <small style="color: grey">{{ field.help_text }}</small>
                {% endif %}
                {% for error in field.errors %}
                    <p style="color: red">{{ error }}</p>
                {% endfor %}
            </p>
            <br>
        {% endfor %}

        <br>
....

Я не думаю, что шаблон по какой-то причине распознает {{ form }}, так как когда я просто использую {{ form }}, ничего не отображается

EDIT: form2 также используется позже на странице шаблона с использованием того же синтаксиса, что и форма

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...