O valor padrão para o campo no modelo de Django

votos
69

Suponha que eu tenho um modelo:

class SomeModel(models.Model):
    id = models.AutoField(primary_key=True)
    a = models.CharField(max_length=10)
    b = models.CharField(max_length=7)

Atualmente estou usando o padrão do administrador para criar / editar objetos desse tipo. Como faço para remover o campo bdo administrador de modo que cada objeto não pode ser criado com um valor, e em vez receberá um valor padrão de 0000000?

Publicado 16/04/2009 em 13:13
fonte usuário
Em outras línguas...                            


3 respostas

votos
105

Definir editablepara Falsee defaultpara o seu valor padrão.

http://docs.djangoproject.com/en/dev/ref/models/fields/#editable

b = models.CharField(max_length=7, default='0000000', editable=False)

Além disso, o idcampo é desnecessário. Django irá adicioná-lo automaticamente.

Respondeu 16/04/2009 em 13:16
fonte usuário

votos
20

Você pode definir o padrão como este:

b = models.CharField(max_length=7,default="foobar")

e então você pode ocultar o campo com class Admin do seu modelo como este:

class SomeModelAdmin(admin.ModelAdmin):
    exclude = ("b")
Respondeu 16/04/2009 em 13:20
fonte usuário

votos
15

Você também pode usar um exigível no campo padrão, tais como:

b = models.CharField(max_length=7, default=foo)

E, em seguida, definir o que pode ser chamado:

def foo():
    return 'bar'
Respondeu 01/11/2011 em 16:53
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more