次の問題について助けが必要です。
Django admin を使用して、オブジェクトが存在するかどうかに応じて、いくつかのフィールドをインラインで非表示にしたいと考えています。
admin.ModelAdmin と同等の例:
class ClassAdmin(admin.ModelAdmin):
...
def get_form(self, request, obj=None, **kwargs):
# if inline has not been saved
if obj is None:
self.fieldsets[0][1]['fields'] = tuple(x for x in self.fieldsets[0][2]['fields'] if (x!='field1'))
else:
self.inlines = self.inlines + [ClassInline,]
if obj.field1 == 'N':
self.fieldsets[2][7]['fields'] = tuple(x for x in self.fieldsets[2][8]['fields'] if (x!='field10'))
return super(ClassAdmin, self).get_form(request, obj, **kwargs)
どうすればインラインと同等にできますか?
class ClassInline(admin.StackedInline):
# if obj:
# display filed1, field2
# else:
# display filed3, field4
私は懸命に努力しましたが、問題を解決するのに役立つものは見つかりませんでした。私が見つけたいくつかのトピック:
誰かが仕事をすることができるコードの例を示すことができますか?