2016-02-18 2 views
2

Я зарегистрировал несколько моделей для отображения в области администратора, но я хотел бы, чтобы некоторые поля были скрыты.Скрытие поля модели в Django admin 1.9

В качестве примера у меня есть модель TeachingClasses с BooleanField с именем «Status», которая установлена ​​в True или False в зависимости от того, открыт класс или нет. Но это установлено где-то еще в приложении. Нет необходимости, чтобы это поле отображалось в области администратора, когда кто-то хочет создать новый класс для участия.

Таким образом, существует ли способ скрыть это поле в области администратора?

Я попытался добавить это в файл admin.py приложений, но он не сделал ничего

from django.contrib import admin 

class MyModelAdmin(admin.ModelAdmin): 
    class TeachingClasses: 
     exclude = ('Status',) 

, но это не работает?

Любая подсказка, если это правильный путь?

Моя модель:

class TeachingClasses(models.Model): 
    name = models.Charfield('Class Name',max_lenght=64) 
    [...] 
    status = models.BooleanField('Status',default=True) 

ответ

11

То, что вы сделали не правильный синтаксис, вам нужно:

class TeachingClassesAdmin(admin.ModelAdmin): 
    exclude = ('status',) 

admin.site.register(TeachingClasses, TeachingClassesAdmin) 

Django doc about how to use exclude.

+1

. Обязательно зарегистрируйте класс и с администратором. – Tom

+0

Это намного проще :) – karthikr

+1

Это сработало красиво, спасибо! И спасибо за ссылку в документе. Программирование - это хобби здесь (работа в ИТ), и документы часто более запутанны, чем не для меня. Таким образом, я полностью пропустил это, когда я просмотрел документ раньше. – Kinwolf

0

В admin.py:

class TeachingClassesAdmin(admin.ModelAdmin): 
    list_display = ('name',) # plus any other fields you'd like to display 
admin.site.register(TeachingClasses, TeachingClassesAdmin)` 
+1

Прошу прощения, но это не то, что хочет OP - они хотят скрыть поле, а не изменять 'list_display' – karthikr

Смежные вопросы