5
Tôi có một hình thức như hình dưới đây:hình thức django: thay đổi thuộc tính của formfield động
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
Tùy thuộc vào giá trị của dự thảo, tôi muốn thay đổi các thuộc tính (bắt buộc) của một số các lĩnh vực, trong đó là những gì đã được trong phương pháp init.
Tuy nhiên tôi gặp thông báo sau:
'ConsentFormTpl' object has no attribute 'acknowledge'
Bất cứ ai biết tại sao?
bah, câu trả lời chính xác. cảm ơn bạn. – goh