Скрытые поля непосредственно определены в ОРМ Django путем установки атрибута поле: editable = False
например
class PostCodes(models.Model):
gisid = models.IntegerField(primary_key=True)
pcname = models.CharField(max_length=32, db_index=True, editable=False)
...
Однако, установка или изменение полей в модели непосредственно не всегда может быть возможно или advantegous. В принципе, установка admin.py
могла бы работать, но не с тех пор, как exclude является опцией InlineModelAdmin.
class PostCodesAdmin(admin.ModelAdmin):
exclude = ('pcname',)
....
решение работает по крайней мере, в Django 1.4 (и, вероятно, более поздние версии чисел) является:
class PostCodesAdmin(admin.ModelAdmin):
def get_form(self, request, obj=None, **kwargs):
form = super(PostCodesAdmin, self).get_form(request, obj, **kwargs)
del form.base_fields['enable_comments']
return form
Для администратора списка ракурса пунктов, достаточно просто оставить вне поля не требуется: например
class PostCodesAdmin(admin.ModelAdmin):
list_display = ('id', 'gisid', 'title',)
Для Джанго> 1,8 можно непосредственно установить поля исключаемые:
class PostCodesAdmin(admin.ModelAdmin):
exclude = ('pcname',)
Вы можете создать метод ** Book.get_title_or_nothing ** и использовать его в ** BookAdmin ** в показать его –
Хорошо, спасибо, не могли бы вы дать мне пример, как использовать его в BookAdmin? Потому что я знаю общую идею, но не совсем, какой из объектов я должен использовать, что должна вернуть эта функция. – pmoniq
Проблема в том, как получить тип объекта в определении класса BookInline() в admin? – pmoniq