我需要帮助解决以下问题:
使用 Django 管理员,我想根据对象是否存在来隐藏一些内联字段。
等效于 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
我努力尝试并没有找到可以帮助我解决问题的方法。我发现的一些主题:
有人可以展示一个可以完成这项工作的代码示例吗?