【问题标题】:Complex django form复杂的django形式
【发布时间】:2020-01-03 23:58:33
【问题描述】:

我想将输入作为列表。 这是我的表格。 py

from django import forms
from .models import answer


class SchoolInput(forms.Form):
    school_name = forms.CharField(
        max_length=255, required=True, widget=forms.TextInput(
            attrs={
                'class': 'input'
            }
        ))
    num_of_days = forms.IntegerField(min_value=1, max_value=7, required=True)
    level_of_grades = forms.IntegerField(min_value=1, required=True)
    num_of_subjects = forms.IntegerField(min_value=1, widget=forms.NumberInput(
        attrs={
            'class': 'second_input'
        }
    ))
    name_of_subjects = forms.CharField(widget=forms.TextInput(
        attrs={
            'class': 'third_input'
        }
    ))
    num_of_lectures = forms.IntegerField(min_value=1, widget=forms.NumberInput(
        attrs={
            'class': 'second_input'
        }
    ))
    division_check = forms.ChoiceField(
        label='Do you have multiple divisions for your grades?',
        choices=answer,
        widget=forms.RadioSelect(attrs={
            'class': 'radiobuttons',
            'style': 'display: block'
        })
    )

num_of_subjects 字段和num_of_lectures 字段是我想将输入作为列表的字段,迭代次数取决于level_of_grades 字段中提供的值。 尝试列出了这些领域的综合清单,但认为这不是一个好主意。 虽然这些不是用 html 制作的表单,但使用 django 表单来完成这项任务或制作 html 表单是个好主意吗? 为了更好地理解这些应该是我想要的值

school_name = 'something'
level_of_grades = 5
num_of_days = 5
num_of_subjects = ['4','3','5','6','9']
num_of_lectures = ['6','7','9','4','3']
name_of_subjects = this will be list with number of lists inside which I'll create once ill understand the logic behind creating a list
division_check = "yes"

【问题讨论】:

    标签: django python-3.x django-models django-forms django-templates


    【解决方案1】:

    除了编写自己的模板来呈现表单或自定义表单字段小部件之外,您还可以使用创建 html 列表输入:

    对于自定义表单验证和跨字段验证,您可以扩展Form clean() 方法以检查列表字段的长度是否等于其他字段值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-13
      • 2023-04-04
      • 2017-08-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多