python - django 表格 : change attribute of formfield dynamically

标签 python django django-forms

我有一个类似下面的表格:

class ConsentFormTpl(forms.Form):
    title =  forms.CharField()
    message = forms.CharField(widget=EditorWidget,label='Description')
    acknowledge = forms.BooleanField(label="Require acknowledgement?")
    deadline = forms.DateField(widget=CalendarTimeWidget,label="Acknowledge By")
    start_time = forms.DateTimeField(widget=CalendarTimeWidget)
    end_time = forms.DateTimeField(widget=CalendarTimeWidget)
    availClass  = forms.ModelChoiceField(queryset=SchoolClass.objects.all(),empty_label="Select a class",label='Class')
    consent = forms.BooleanField()
    students = forms.ModelMultipleChoiceField(label="",\
        queryset=User.objects.filter(groups__name='Students').extra(select={'user_name':"first_name || ' ' || last_name"}), \
        widget=FilteredSelectMultiple("Students",is_stacked=False))
    where =  forms.CharField()
    form_name = forms.CharField(label='Save as:')


    def __init__(self,data=None,draft=False):
        super(ConsentFormTpl,self).__init__(data)
        self.draft = draft

        self.acknowledge.required = False
        self.deadline.required = False
        self.start_time.required = False
        self.end_time.required = False
        self.availClass.required = False
        self.consent.required = False
        self.where.required = False

        if draft:
            self.title.required = False
            self.message.required = False
            self.students.required = False
            self.form_name.required = True
        else:
            self.form_name.required = False

根据 draft 的值,我想更改一些字段的属性(必需),这是 init 方法中的属性。

但是我遇到了以下信息:

'ConsentFormTpl' object has no attribute 'acknowledge'

谁知道为什么?

最佳答案

字段不能作为表单实例的属性使用。它们在 self.fields 中作为字典元素提供。所以:

self.fields['acknowledge'].required = False

等等。

关于python - django 表格 : change attribute of formfield dynamically,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5989293/

相关文章:

python - 在 Django 迁移创建期间忽略 CharField "choices"中的更改

python - 当表单有标点符号时引发错误 django

python - Django - 403 禁止。 CSRF token 缺失或不正确

python - 在 Django 表单上引发 ValidationError 的问题

python - Django:如何在不提交给数据库的情况下将模型表单数据从一页传送到另一页,然后再返回?

python - 循环 pandas 数据帧的每一行

python - 将 numpy 数组的特定索引中的数字替换为 NaN

Python - 使用队列时多处理线程不会关闭

django - 在Django REST Framework中找不到资源时如何返回404

python - 多个 jediepcserver.py 用于多个 virtualenv