2013-03-05 89 views
0

前检查的关系我的Django模型由两个类annualReportannualReportAttachment的Django模型:保存对象

两个模型之间的关系是oneToMany。在管理形式,我需要验证用户已上传至少一个文件,所以我用下面的清洁方法在annualReport

def clean(self): 
    attachments = annualReportAttachment.objects.filter(annualReport=self) 
    if len(attachments) == 0: 
     raise ValidationError("You should upload at least one file") 

的问题是,附加的文件尚未保存,因此attachments变量是空的,表单总是会引起错误。

如何检查用户是否上传了至少一个文件?

+0

中的RequireOneFormSet类,如果len(附件)> 0: – catherine 2013-03-05 14:37:26

+0

AnnualReportAttachment在您的admin类的annualReport中表示为内联模型吗? – Brandon 2013-03-05 14:40:05

+0

@Brandon是的,它是一个内联模型 – 2013-03-05 14:41:55

回答

0

您需要确保内联模型中至少有一个表单被保存。要做到这一点,我建议利用https://code.google.com/p/wadofstuff/wiki/WadOfStuffDjangoForms,

,
+0

是否有任何解决方法,而不是'RequireOneFormSet'? – 2013-03-05 15:13:44

+0

您可以随时编写自己的代码,但最终会写入与RequireOneFormSet类中相同的逻辑。我已经在需要至少一个内联模型的众多项目中使用过这个类,并且它非常棒。 – Brandon 2013-03-05 15:15:39

+0

RequireOneFormSet类不适合您的需求吗? – Brandon 2013-03-05 15:16:11