/ / Valor predeterminado para el campo en el modelo de Django - python, django, django-models, django-admin

Valor predeterminado para el campo en el modelo Django - python, django, django-models, django-admin

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 № 1

Conjunto 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"