我有模型“产品”模型和许多其他模型,它们的外键作为产品。 目前我有 ProductAdmin 行
class Product:
type_of_product=models.ChoiceField()
class ProductAdmin(admin.ModelAdmin):
form = ProductAdminForm
inlines = [Inline1, Inline2, Inline3, Inline4,....Inline 15]
因此,产品管理添加页面看起来非常大。在这里,我只需要根据 type_of_product 的值填充一些内联模型。内联模型的许多条目都是空的。
因此本质上内联与 Product 的 type_of_product 属性相关。当前,用户必须注意根据他选择的 type_of_product 在哪些内联中填充值。
现在我想解决这个问题。
选项 1) 根据用户通过 AJAX 选择的 type_of_product 动态渲染内联表单。(不知道如何做)
选项 2) 禁用或隐藏不必要的内联,这样他就看不到不相关模型的内联形式。
任何人都可以帮忙解决这个问题吗?
最佳答案
您可以根据当前对象修改内联,只需覆盖 ModelAdmin
的 change_view
方法即可。在您的 ProductAdmin
中添加如下内容:
def change_view(self, request, object_id, form_url='', extra_context=None):
product = Product.objects.get(pk=object_id)
current_inlines = []
# CODE TO FILL INLINES BASED ON PRODUCT
self.inlines = current_inlines
return super(ProductAdmin, self).change_view(request, object_id, form_url, extra_context=extra_context)
关于javascript - 在 django admin 中禁用/隐藏不必要的内联表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25772856/