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

时间:2015-01-29 19:25:09

标签: python django

Django文档清楚地说明了如何根据正在编辑的特定Model实例的属性自定义ModelForm实例。但是,我正在使用涉及模型之间的许多外键关系的设计,并且我一直在遇到我想基于与之关联的内联模型修改特定内联表单实例的情况。我已经挖掘了文档和代码,但解决方法是让我不知所措。

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

1 个答案:

答案 0 :(得分:3)

我并非100%确定我完全理解您的要求,但您可以为管理员内联(https://docs.djangoproject.com/en/1.7/ref/contrib/admin/#django.contrib.admin.InlineModelAdmin.form)指定forms.ModelForm并获得当前的instance内联对象,然后您可以根据instance更改表单字段。