Есть форма для регистрации студентов.Каждый из учеников в школе.А с помощью 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>