Django表单:在清理表单时向表单添加附加信息时出现问题
我有一个Django表单,它只需要一个邮政编码Django表单:在清理表单时向表单添加附加信息时出现问题,django,django-models,django-forms,django-validation,Django,Django Models,Django Forms,Django Validation,我有一个Django表单,它只需要一个邮政编码 class ServiceAreaForm(forms.Form): name = forms.CharField(disabled=True, required=False) zip = forms.IntegerField( label="PLZ", validators=[validateZipCodeLength] ) def clean(self): service_ar
class ServiceAreaForm(forms.Form):
name = forms.CharField(disabled=True, required=False)
zip = forms.IntegerField(
label="PLZ", validators=[validateZipCodeLength]
)
def clean(self):
service_area: ServiceArea = validateServiceArea(self["zip"].value())
self.fields["name"].value = service_area.name
super().clean()
在validateServiceArea中,我想检查邮政编码是否受支持
def validateServiceArea(zip_code):
try:
return ServiceArea.objects.get(zip=zip_code)
except ServiceArea.DoesNotExist:
raise ValidationError("Not supported Service Area")
如果是这样,我希望将返回的ServiceArea中的信息传递到另一个表单,而不是对同一事物使用另一个查询
我一直在尝试使用表单的clean方法并将其放在name字段中,但感觉太复杂了(而且name甚至不会出现在clean_字段中)
有什么简单的方法吗?我会这样做:
def clean(self):
cleaned_data = super.clean()
service_area: ServiceArea = validateServiceArea(cleaned_data.get("zip"))
cleaned_data["name"] = service_area.name
return cleaned_data