Я создаю форму, в которой есть радиокнопка , конечно же, и выпадающих дат , в которые будет проходить курс.
Должно выглядеть как изображение показано ниже
Model.py
class CourseModel(models.Model):
""" Name and Id for each course conducting """
id = models.CharField(
primary_key=True,
max_length=10
)
name = models.CharField(max_length = 100)
def __str__(self):
return self.name
class Meta:
verbose_name = 'Course'
verbose_name_plural = 'Courses'
class DateModel(models.Model):
""" Each Course can have many Dates """
start_date = models.DateField()
end_date = models.DateField(null=True)
course_id = models.ForeignKey(
CourseModel,
on_delete = models.SET_NULL,
null = True,
blank = False
)
def __str__(self):
return "{} - {}".format(self.start_date, self.end_date)
class Meta:
verbose_name = 'Date'
verbose_name_plural = 'Dates'
Я пробовал различные методы в форме для обратного просмотра, но безуспешно.
forms.py
class ApplyForm(forms.Form):
username = forms.CharField(required = True)
....
phone_number = forms.CharField()
# courses = forms.ChoiceField(choices=CHOICES, widget=forms.RadioSelect)
# courses = forms.ModelChoiceField(widget=forms.RadioSelect, queryset = CourseModel.objects, empty_label=None )
# courses = forms.ModelChoiceField(queryset= CourseModel.objects)
courses = forms.modelformset_factory(CourseModel, fields=('id', 'name',))
dates = forms.modelformset_factory(DateModel, fields=('start_date','end_date','course_id'))
Прочитав много форм StackOverflow, я обнаружил, что нам нужно использовать обратный поиск, чтобы найти даты из курса, поэтому в form.py я пытался создать обратный поиск
views.py
def apply_page_copy(request):
print(request.POST)
form = ApplyForm(request.POST or None)
if form.is_valid():
print(form.cleaned_data)
# ApplyModel.objects.create(**form.cleaned_data)
# form = ApplyForm()
else:
print(form.errors)
content = {'form': form}
return render(request, 'fillForm_copy.html', content)
Шаблон тегов на главном сайте
fillForm_copy. html
{% for course in form.courses %}
{{ course.id }}
{{ course.name }}
{% endfor %}
I хотите получить start_date
и end_date
по каждому course.id
, чтобы я мог отображать их в раскрывающемся списке для каждого курса, люди выбирают.
Заранее спасибо.