sql >> Base de Datos >  >> RDS >> PostgreSQL

Limite la cantidad de registros en un modelo que puede tener un valor por usuario

Debe crear un método de limpieza personalizado en su 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?')