2015-07-03 85 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

是啊感謝您的回答 –

相關問題