Как прятать поля у модели в админке в зависимости от значения поля?

Всем привет,

Возник вопрос, можно ли как-то прятать поля у модели в зависимости от значения конкретного поля в админке? Например, у нас есть модель Машина. Если поле Цвет содержит значение "Красный", то тогда показывать дополнительно два поля.

Как это можно сделать?

Спасибо.
  • Вопрос задан
  • 157 просмотров
Решения вопроса 1
zymanch
@zymanch
python/django web-developer
Например, так:
class BookAdmin(admin.ModelAdmin):
    list_display = ("pk", "get_title_or_nothing")

    def get_form(self, request, obj=None, **kwargs):
        if obj.type == "1":
            self.exclude = ("title", )
        form = super(BookAdmin, self).get_form(request, obj, **kwargs)
        return form

ну, или с Вашей предметной областью:
class CarAdmin(admin.ModelAdmin):
    list_display = ("pk", "model", "vin")

    def get_form(self, request, obj=None, **kwargs):
        if 'Red' not in obj.color:
            self.exclude = ("field1", "field2")
        form = super(CarAdmin, self).get_form(request, obj, **kwargs)
        return form
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы