Django modelo de herança. Ocultando ou removendo campos

votos
10

Eu quero herdar uma classe de modelo de algum 3 código partido. Eu não vou estar usando alguns dos campos, mas quero o meu cliente para ser capaz de editar o modelo de administração. É a melhor aposta para escondê-los de Admin ou eu posso realmente evitar que sejam criados em primeiro lugar?

Além disso - o que posso fazer se um dos campos não desejados é necessária? Meu primeiro pensamento é para substituir o método save e basta colocar em um valor padrão.

Publicado 04/03/2009 em 18:49
fonte usuário
Em outras línguas...                            


3 respostas

votos
5

Você pode controlar os campos que são editáveis ​​na administração.

De docs Django:

"Se você quer um formulário para o modelo de Autor que inclui apenas o nome eo título campos, você deve especificar campos ou excluir assim:

class AuthorAdmin(admin.ModelAdmin):
    fields = ('name', 'title')

class AuthorAdmin(admin.ModelAdmin):
    exclude = ('birth_date',)"

http://docs.djangoproject.com/en/dev/ref/contrib/admin/

Respondeu 04/03/2009 em 20:02
fonte usuário

votos
4

Ao invés de herdar, considere o uso de formulários personalizados.

  1. Você pode eliminar campos de exibição que ainda estão no modelo.

  2. Você pode validar e fornecer valores padrão na forma do clean()método.

veja http://docs.djangoproject.com/en/dev/ref/contrib/admin/#adding-custom-validation-to-the-admin

Respondeu 04/03/2009 em 19:20
fonte usuário

votos
4

Se você está herdando o modelo, então provavelmente não é sábio para tentar ocultar ou desativar todos os campos existentes. A melhor coisa que você provavelmente poderia fazer é exatamente o que você sugeriu: override save()e lidar com sua lógica de lá.

Respondeu 04/03/2009 em 18:57
fonte usuário

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