3 回答

TA贡献1831条经验 获得超10个赞
clean()为您的表单编写一个方法。有关更多信息,请参见有关相互依赖的字段的清理和验证的Django文档。
您的clean方法应返回cleaned_data字典。在清洗的方法内部,您无法实例化新的表单字段,但可以验证器。
from django.core.validators import validate_ipv46_address, RegexValidator
validate_hostname = RegexValidator(regex=r'[a-zA-Z0-9-_]*\.[a-zA-Z]{2,6}')
def clean(self):
cleaned_data = super(CacheCheck, self).clean()
record = cleaned_data.get("record")
hostname = cleaned_data.get(hostname, "")
if record == "PTR":
validate_ipv46_address(hostname)
elif record == "A":
validate_hostname(hostname)
# todo: check length of hostname as well
return cleaned_data
要回答您的其他问题,您的CacheCheck课程是的子类forms.Form。

TA贡献2019条经验 获得超9个赞
这个逻辑会在表单或视图中完成吗?
两个地方。在客户端使用javascript进行验证,以免造成愚蠢的错误,导致服务器资源负担沉重。然后在服务器端进行验证,以避免在数据库中包含错误的数据。
传递给CacheCheck类的形式是混入还是子类化的形式?
这是子类化的一种形式。CacheCheck继承Form。
添加回答
举报