У меня есть встроенная в таблицу модель в администраторе Django. Мне нужно, чтобы одно из полей не изменялось после его создания, но устанавливало его как readonly (через readonly_fields), который отлично работает, но превращает поле в метку при нажатии "Добавить другой элемент" вместо раскрывающегося списка.
Есть ли способ сохранить поле только для чтения, но все же разрешить создание новых элементов с правильным полем ввода?
Спасибо!
Томас
Изменить: удалось определить его с помощью пользовательского виджета
class ReadOnlySelectWidget(forms.Select):
def render(self, name, value, attrs=None):
if value:
final_attrs = self.build_attrs(attrs, name=name)
output = u'<input value="%s" type="hidden" %s />' % (value, flatatt(final_attrs))
return mark_safe(output + str(self.choices.queryset.get(id=value)))
else:
return super(ReadOnlySelectWidget, self).render(name, value, attrs)
Он просто превращает его в скрытое, если есть значение, не будет работать в каждой ситуации (только на самом деле работает только с 1 полем для чтения).