Supongamos que tengo un modelo:
class SomeModel(models.Model):
id = models.AutoField(primary_key=True)
a = models.CharField(max_length=10)
b = models.CharField(max_length=7)
Actualmente estoy usando el administrador predeterminado para crear / editar objetos de este tipo. ¿Cómo elimino el campo? b
del administrador para que cada objeto no poder ser creado con un valor, y más bien recibirá un valor predeterminado de 0000000
?
Respuestas
108 para la respuesta № 1Conjunto editable
a False
y default
a su valor predeterminado.
http://docs.djangoproject.com/en/dev/ref/models/fields/#editable
b = models.CharField(max_length=7, default="0000000", editable=False)
También tu id
El campo es innecesario. Django lo agregará automáticamente.
20 para la respuesta № 2
Puede establecer el valor predeterminado de esta manera:
b = models.CharField(max_length=7,default="foobar")
y luego puede ocultar el campo con la clase Admin de su modelo de esta manera:
class SomeModelAdmin(admin.ModelAdmin):
exclude = ("b")
15 para la respuesta № 3
También puede utilizar un llamable en el campo predeterminado, como:
b = models.CharField(max_length=7, default=foo)
Y luego definimos lo invocable:
def foo():
return "bar"