2015-07-03 49 views
2

,如果我有这个模型要求某些字段不能全部留空。至少需要一个

class MyClass(models.Model): 
    number = models.IntegerField(unique=True) 
    file1 = models.FileField(null=True, blank=True) 
    file2 = models.FileField(null=True, blank=True) 
    file3 = models.FileField(null=True, blank=True) 

我怎么能要求至少一个FielField心不是空白?

somthing like unique_together?!

+0

https://docs.djangoproject.com/en/1.8/ref/models/instances/ #django.db.models.Model.clean –

回答

2

您不能强制它在数据库级别上,但你可以在模型验证做到这一点:

def clean(self): 
    if not self.file1 and not self.file2 and not self.file3: 
     error_msg = 'At least one of these fields must not be empty' 
     raise ValidationError({ 
      'file1': error_msg, 
      'file2': error_msg, 
      'file3': error_msg, 
     }) 
+0

是啊感谢您的回答 –

相关问题