Django Модель Наследования. Скрытие или удаление полей

StackOverflow https://stackoverflow.com/questions/611691

Вопрос

Я хочу унаследовать класс модели от некоторого стороннего кода. Я не буду использовать некоторые поля, но хочу, чтобы мой клиент мог редактировать модель в Admin. Лучше всего скрывать их от администратора или я могу вообще предотвратить их создание?

Дополнительно - что я могу сделать, если требуется одно из нежелательных полей? Моя первая мысль - переопределить метод save и просто ввести значение по умолчанию.

Это было полезно?

Решение

Если вы наследуете модель, то, вероятно, не стоит пытаться скрыть или отключить любые существующие поля. Лучшее, что вы могли бы сделать, это именно то, что вы предложили: переопределить save () и обработать вашу логику там.

Другие советы

Вы можете управлять полями, которые можно редактировать в админке.

Из документов Django:

" Если вам нужна форма для модели Author, которая включает только поля имени и заголовка, вы должны указать поля или исключить их следующим образом:

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

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

http://docs.djangoproject.com/en/dev/ исх / вно / админ /

Вместо наследования рассмотрите возможность использования настраиваемых форм.

<Ол>
  • Вы можете исключить из отображения поля, которые все еще находятся в модели.

  • Вы можете проверить и предоставить значения по умолчанию в методе clean () формы.

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

    Лицензировано под: CC-BY-SA с атрибуция
    Не связан с StackOverflow
    scroll top