Застрял с обратным поиском для получения даты каждого курса в django 2,2 - PullRequest
0 голосов
/ 04 мая 2020

Я создаю форму, в которой есть радиокнопка , конечно же, и выпадающих дат , в которые будет проходить курс.

Должно выглядеть как изображение показано ниже

enter image description here

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, чтобы я мог отображать их в раскрывающемся списке для каждого курса, люди выбирают.

Заранее спасибо.

...