gpt4 book ai didi

python - django 表格 : change attribute of formfield dynamically

转载 作者:太空狗 更新时间:2023-10-30 00:23:44 24 4
gpt4 key购买 nike

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

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/

24 4 0
文章推荐: c# - 获取 Picturebox 中缩放图像的确切大小
文章推荐: python - 在 pdb 中打印值
文章推荐: c# - 将 Task 转换为 Task,其中 T 未知