2015-02-09 65 views
2

在django管理員中,我有一個ModelForm和一個內聯表單。我需要save_formset方法中外鍵字段的名稱,內聯表單的模型與主(父)表單的模型相關。獲取內聯表單相關的外鍵字段名稱

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

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

我需要作者的ModelAdmin的save_formset方法中的字段名稱(本例中爲'writer')。

回答

5

我究竟猜到了什麼,你試圖獲取與特定modeladmin相關的外鍵字段的名稱。

您應該在ModelAdmin中使用save_formset字段,並在此處查找外鍵名稱。

all_formset_forms = formset.forms 

這將返回當前表單的所有內聯表單,您嘗試保存。

循環遍歷每個表單字段和您要求的字段,即相關的modeladmin實例的外鍵字段是parent_instance的一個屬性。

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