PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Limitar o número de registros em um modelo que pode ter um valor por usuário


Você deve criar um método de limpeza personalizado em seu modelo.
from django.core.exceptions import ValidationError
from django.db import models

class MyModel(models.Model):
    user = models.ForeignKey(User)
    is_active = models.BooleanField(default=False)
    #...more fields ...

    def clean(self):
        if not self.pk and MyModel.objects.filter(user=self.user, is_active=True).exists():
            raise ValidationError('How about no?')