django model:保存对象前检查关系

时间:2013-03-05 14:33:13

标签: django django-models django-admin django-validation

我的django模型包含两个类annualReportannualReportAttachment

两个模型之间的关系是oneToMany。在管理表单中,我需要验证用户是否已上传至少一个文件,因此我在annualReport类中使用以下clean方法

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

问题是附加的文件尚未保存,因此attachments变量为空,表单始终引发该错误。

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

1 个答案:

答案 0 :(得分:0)

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

中的RequireOneFormSet类