Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何基于对象实例定制Django内联管理表单_Python_Django - Fatal编程技术网

Python 如何基于对象实例定制Django内联管理表单

Python 如何基于对象实例定制Django内联管理表单,python,django,Python,Django,Django文档清楚地说明了如何根据正在编辑的特定模型实例的属性自定义ModelForm实例。但是,我使用的设计涉及模型之间的许多外键关系,并且我经常遇到这样的情况,即我希望基于与之关联的内联模型修改特定的内联表单实例。我已经翻遍了文档和代码,但解决方案却一直没有找到 我能找到的最接近这个钩子的东西是InlineModelAdmin.get_formset(),但传递给该方法的对象实例是父对象,而不是子对象的实例。不过,我的直觉是有办法做到这一点。有人知道正确的方法吗?我不能100%肯定我完全理

Django文档清楚地说明了如何根据正在编辑的特定模型实例的属性自定义ModelForm实例。但是,我使用的设计涉及模型之间的许多外键关系,并且我经常遇到这样的情况,即我希望基于与之关联的内联模型修改特定的内联表单实例。我已经翻遍了文档和代码,但解决方案却一直没有找到


我能找到的最接近这个钩子的东西是InlineModelAdmin.get_formset(),但传递给该方法的对象实例是父对象,而不是子对象的实例。不过,我的直觉是有办法做到这一点。有人知道正确的方法吗?

我不能100%肯定我完全理解您的要求,但是您可以为admin inline()指定一个
forms.ModelForm
,它接收当前inline对象的
实例
,然后您可以根据
实例
更改表单字段

我想您可以在
InlineModelAdmin.get\u formset()
中设置
ModelForm
,并基于
instance
参数自定义此表单。好了,这就是我缺少的部分:我没有考虑在
forms.ModelForm
的\uuuuuuu init\uuuuu()方法中执行此自定义。谢谢