我试图做一个窗体来处理域的检查:窗体应该失败的基础上在另一个窗体中设置的变量。如何使Django中的表单验证动态?
基本上,当用户想要创建一个新的领域,这种形式应该如果输入的域名存在失败。
当用户想移动某个域,这种形式应该如果输入的域不存在失败。
我试图使它的动态超载init
却不见一个办法让我通过variabele的清洁功能。
我读过这个动态验证可以使用工厂方法来完成,但也许有人可以帮助我在我的这种方式?
这里是形式的简化版本至今:
#OrderFormStep1 presents the user with a choice: create or move domain
class OrderFormStep2(forms.Form):
domain = forms.CharField()
extension = forms.CharField()
def clean(self):
cleaned_data = self.cleaned_data
domain = cleaned_data.get("domain")
extension = cleaned_data.get("extension")
if domain and extension:
code = whoislookup(domain+extension);
#Raise error based on result from OrderFormStep1
#raise forms.ValidationError('error, domain already exists')
#raise forms.ValidationError('error, domain does not exist')
return cleaned_data
不,后面没有模型,完全依赖于用户输入和whois检查(服务器请求给第三方)。 我可以在表格的范围之外解决这个问题很容易,但它似乎更整洁,以便能够从窗体本身引发的错误.. – Oli 2010-05-27 15:04:52
不,如果你没有一个模型,有没有必要引进一个只为这个。就我而言,这只是一个糟糕的假设。 – Tom 2010-05-27 18:40:12