2013-03-05 86 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