Поля только для чтения в django администраторе / встроенный

Я использую этот отрывок для показа нескольких полей в моем администраторском бэкенде как только для чтения, но, как замечено в комментариях, он не работает над stackedinline/tabularinline. Там какой-либо другой путь состоит в том, чтобы достигнуть этого? Я имею список объектов, присоединенных к модели, и просто хочу показать, что это в деталях модели просматривает без возможности изменить значения.

10
задан schneck 29 January 2010 в 09:17
поделиться

2 ответа

Если вы используете Django 1.3 или позже; Есть атрибут имени ModelAdmin.readonly_fields , который вы могли бы использовать.

InlineModeladmin наследует из ModelAdmin , поэтому вы сможете использовать его из вашего встроенного подкласса.

18
ответ дан 3 December 2019 в 19:32
поделиться

Сегодня я столкнулся с той же проблемой. Вот мое решение. Это пример доступного только для чтения поля для значения 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
2
ответ дан 3 December 2019 в 19:32
поделиться
Другие вопросы по тегам:

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