だから私はインラインフォームでいくつかのフォームフィールドウィジェットを無効にしようとしています(レンダリングされたhtmlで無効な属性を設定することにより)。
以下は、半分は機能しているように見える一部のコードの縮小版です。
class IncomingItemForm(forms.ModelForm):
class Meta:
model = models.IncomingItem
def __init__(self, *args, **kwargs):
super(IncomingItemForm, self).__init__(*args, **kwargs)
if self.instance.id is not None:
self.fields[some_field_name].widget.attrs.update({'disabled' : 'disabled'})
class IncomingItemInline(admin.TabularInline):
model = models.IncomingItem
form = IncomingItemForm
これを行うとどうなりますか: some_field_name は、最初のインライン行を除くすべてに対して無効になっています。
1行だけを無効にしてデバッグを行いましたが、これはオフバイワンエラーのようです。これは django.contrib.admin のバグですか、それともばかげたことをしていますか?
編集:django 1.7b4を使用しています