PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Limitare il numero di record in un modello che possono avere un valore per utente

Dovresti creare un metodo di pulizia personalizzato sul tuo modello.

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?')