Django - вернуть пустое значение из выбранного тега HTML - PullRequest
0 голосов
/ 01 декабря 2018

Есть форма для регистрации студентов.Каждый из учеников в школе.А с помощью forms.ModelChoiceField название школы будет отображаться в шаблоне с помощью тега «выбрать».(раскрывающийся список) Основная проблема заключается в том, что после выбора одного «параметра» из тега «выбор» я не могу получить значение выбора в моделях views.py .

.py

class School(models.Model):
    name = models.CharField(max_length=40)

    def __str__(self):
        return self.name

class Student(models.Model):
    name = models.CharField(max_length=40)
    school = models.ForeignKey(School)

    def __str__(self):
        return self.name

forms.py

class SchoolForm(forms.ModelChoiceField):
    def label_from_instance(self, obj):
        return obj.name

class StudentForm(forms.ModelForm):
    student_school = SchoolForm(queryset = School.objects.all())

    class Meta:
        model = Student
        fields = ('name', 'school')

views.py

def student_register(request):
    if request.method == 'POST':
        form = StudentForm(request.POST)
        form.school = request.POST['school']

        if form.is_valid():
            form.save
     else:
         form = StudentForm()

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

index.html

<form method="post" action={% 'student_register' %}>
{% csrf_token %}
    {{ form.name }}
    <select id="id_school" name="school">
        {% for name in form.student_school %}
            <option value={{ name }}>
        {% endfor %}
    </select>
</form>
...