我一直在寻找为什么 modelforms 字段模型返回 None 即使它在字段中给出了值。
形式
class GoodMoralSettingForm(CrispyFormMixin, forms.ModelForm):
class Meta:
model = Student
fields = [
"requestor",
"good_moral_certificate",
"good_moral_remarks",
"good_moral_purpose"
]
def __init__(self, *args, **kwargs):
self.student = kwargs.pop('student', None)
super(GoodMoralSettingForm, self).__init__(*args, **kwargs)
student = Student.objects.get(pk=self.student)
self.fields['good_moral_certificate'].initial = student.good_moral_certificate
def clean_good_moral_certificate(self):
good_moral_certificate = self.cleaned_data.get('good_moral_certificate', None)
good_moral_remarks = self.cleaned_data.get('good_moral_remarks', None)
good_moral_purpose = self.cleaned_data.get('good_moral_purpose', None)
requestor = self.cleaned_data.get('requestor', None)
if requestor is None:
requestor = "{requestor}"
if good_moral_purpose is None:
good_moral_purpose = "{good_moral_purpose}"
if good_moral_remarks is None:
good_moral_remarks = "{good_moral_remarks}"
print("=========================")
print(good_moral_remarks) # returns None
print(good_moral_purpose) # returns None
print(requestor) # returns data I suppose to get
good_moral_certificate = good_moral_certificate.replace(
"{requestor}", requestor).replace(
"{remarks}", good_moral_remarks).replace(
"{purpose}", good_moral_purpose
)
return good_moral_certificate
我尝试清理这两个字段,但又抛出了一个无,有人可以帮我在哪里做错了吗?真的很感激