【问题标题】:How can I show inlines dynamically in django admin如何在 django admin 中动态显示内联
【发布时间】:2020-12-21 03:45:39
【问题描述】:

我想动态显示内联取决于模型值。当我覆盖get_inlines 时:

# ModelAdmin
def get_inlines(self, request, obj):
    if obj.is_show:
        return [SectionInline]
    else:
        return []

更改模型对象时出现异常:

ValidationError: 'ManagementForm data is missing or has been tampered with'

好像不行。

谁能帮我找出正确的方法?

谢谢!

【问题讨论】:

    标签: python django


    【解决方案1】:

    正确的方法是覆盖change_view 而不是get_inline

    def change_view(self, request, object_id, form_url='', extra_context=None):
          self.inlines = []
          obj = self.model.objects.filter(pk=object_id).first()
          if obj and obj.is_show:
              self.inlines = [SectionInline]
          return super().change_view(request,object_id,form_url=form_url,extra_context=extra_context)
    

    参考this post

    【讨论】:

      猜你喜欢
      • 2021-06-18
      • 1970-01-01
      • 2011-07-30
      • 2010-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-27
      • 1970-01-01
      相关资源
      最近更新 更多