template tag registered one not must library ifequal dirs django django-models django-validation

tag - ¿Se llama implícitamente a save() al llamar a create en django?



is not a registered tag library. must be one of: (2)

Estoy intentando realizar una validación personalizada en un modelo y me estoy confundiendo. Déjame ser específico. Digamos que mi código es el siguiente:

class FooManager(models.Manager): def create_foo(self, name): return self.create(foo_name = name) class Foo(models.Model): foo_name = models.CharField(max_length=30) objects = FooManager() def clean(self): ... def save(self, *args, **kwargs): self.full_clean() super(User, self).save(*args, **kwargs)

Ahora, cuando estoy trabajando con este modelo desde el shell, si llamo:

f = Foo.objects.create_foo ("")

Se generará un error de validación antes de que tenga la oportunidad de llamar a save () en f. ¿Por qué pasó esto? ¿No debería el error de validación solo plantearse una vez que llamo a f.save ()?

Nota: lo mismo sucede si utilizo objects.create () en comparación con el método de creación definido personalizado. Cualquier ayuda sería muy apreciada, ya que encuentro que las validaciones en django son bastante frustrantes.


Olvidaste ponerte en tu manager

class FooManager(models.Manager): def create_foo(self, name): return self.create(foo_name = name)


create() guardará automáticamente, por lo que incluso si soluciona el error, igual deberá asegurarse de que los argumentos para crear cumplan con los requisitos de la base de datos para guardar un registro.