Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django表单:在清理表单时向表单添加附加信息时出现问题_Django_Django Models_Django Forms_Django Validation - Fatal编程技术网

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

我有一个Django表单,它只需要一个邮政编码

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