É possível fazer através da validação de model do próprio Django.
from django.core.exceptions import ValidationError
def validate_only_one_instance(obj):
model = obj.__class__
nome_modelo = model.__name__
if (model.objects.count() > 0 and obj.id != model.objects.get().id):
raise ValidationError("Modelo %s limitado a 1 instancia" % nome_modelo)
E no seu modelo:from django.core.exceptions import models
class Exemplo(models.Model):
campo = CharField()
inteiro = IntegerField()
def clean(self):
validate_only_one_instance(self)
Veja que, dessa forma, você não impede a tentativa de criar, mas evita que a criação prossiga.Fonte
Nenhum comentário:
Postar um comentário