PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Begrenzen Sie die Anzahl der Datensätze in einem Modell, die einen Wert pro Benutzer haben können

Sie sollten eine benutzerdefinierte Bereinigungsmethode für Ihr Modell erstellen.

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