Django admin - 根据更改或添加,内联管理表单的不同只读字段

时间:2015-07-29 01:06:58

标签: python django django-admin

我想在内联管理员中使用不同的readonly_fields,具体取决于我们是添加还是更改内联模型的实例。对于常规(非内联)管理类,这将是这样的:

class SomeInlineAdmin(admin.StackedInline):

     def get_readonly_fields(self, request, obj=None):
        # normally this will tell you if you're adding or changing an instance 
        if obj:
            # change
        else:
            # add
        # but... obj is instance of parent class, not the inline model class...

但我没有看到在InlineAdmin内部确定是否添加或更改内联模型实例的方法。在切线方面,我发现很奇怪在InlineAdmin类中,obj是父模型的实例,而不是内联模型。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我是用外键关系完成的: 向子类添加一个包含父PK的字段,并在需要时可以查询父字段值。 或 - 向子级添加相同的字段,并在父级更新时更新它。