Django-Form:在清理表单时添加其他信息到表单的问题

问题描述

我有一个仅包含邮政编码的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字段中,但是感觉太复杂了(名称甚至不会出现在cleaned_fields中)。

有什么简单的方法吗?

解决方法

我会这样:

pdfinfo file_no_meta.pdf

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...