Я использую этот отрывок для показа нескольких полей в моем администраторском бэкенде как только для чтения, но, как замечено в комментариях, он не работает над stackedinline/tabularinline. Там какой-либо другой путь состоит в том, чтобы достигнуть этого? Я имею список объектов, присоединенных к модели, и просто хочу показать, что это в деталях модели просматривает без возможности изменить значения.
Если вы используете Django 1.3 или позже; Есть атрибут имени ModelAdmin.readonly_fields , который вы могли бы использовать.
InlineModeladmin
наследует из ModelAdmin
, поэтому вы сможете использовать его из вашего встроенного подкласса.
Сегодня я столкнулся с той же проблемой. Вот мое решение. Это пример доступного только для чтения поля для значения ForeignKey:
class MySelect(forms.Select):
def render(self, name, value, attrs=None, choices=()):
s = Site.objects.get(id=value)
return s.name
class UserProfileInlineForm(forms.ModelForm):
site = forms.ModelChoiceField(queryset=Site.objects.all(), widget=MySelect)
class UserProfileInline(admin.StackedInline):
model = UserProfile
form = UserProfileInlineForm