获取与内联表单相关的外键字段名称

get Foreign Key field name by which inline form is related

在 django admin 中,我有一个 ModelForm 和一个内联表单。我需要 save_formset 方法中的外键字段名称,内联表单模型通过该方法与主(父)表单模型相关联。

class Author(models.Model):
    name=models.CharField(max_length=30)

class Article(models.Model):
    writer=models.ForeignKey(Author)

我需要 Author 的 ModelAdmin 的 save_formset 方法中的字段名称(本例中的 'writer')。

我猜到底是什么,您正在尝试获取与特定模型管理员相关的外键字段的名称。

您应该使用 ModelAdmin 中的 save_formset 字段,并在此处找到外键名称。

all_formset_forms = formset.forms

这将 return 您尝试保存的当前表单的所有内嵌表单。

遍历每个表单字段和您要求的字段,即 modeladmin 实例的相关外键字段是 parent_instance 的属性。

if hasattr(formset_form_field,'parent_instance'):
    formset_field_name  =  formset_form_field
    related_modeladmin_instance = formset_field_name.parent_instance