Reputation: 143
If I have this model
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)
How can I require that at least one FielField isn't blank ?
something like unique_together ?!
Upvotes: 3
Views: 361
Reputation: 2263
You can't enforce it on the database level, but you can do this in model validation:
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,
})
Upvotes: 2