Pergunta

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.

Foi útil?

Solução

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

Outras dicas

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 /

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 no método clean() do formulário.

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top