簡體   English   中英

Django - 將多個模型組合成相同的形式 class

[英]Django - combining multiple models into the same form class

有沒有辦法在 form.py 文件中以相同的形式 class 組合多個模型。

現在我有三個模型,必須在 form.py 文件中為每個表單 class 使用 forms.Modelform 創建三個單獨的表單類。

我在 Meta 標簽中為每個表單 class 定義了 model,

就像是:

class Form1(forms.ModelForm):

    # FORM META PARAMETERS
    class Meta:
        model = Model 1

class Form2(forms.ModelForm):

    # FORM META PARAMETERS
    class Meta:
        model = Model 2

class Form3(forms.ModelForm):

    # FORM META PARAMETERS
    class Meta:
        model = Model 3

然后我必須在 HTML 模板中組合所有三個 forms(從每個模型中選擇的字段),因此只有一個提交按鈕。

然后我必須確保我將 3 forms 中的每一個都保存在 view.py 文件中,以便通過點擊一個提交按鈕來保存東西

問題

有沒有辦法將模型組合成一種形式 class 以在 form.py 文件中開始?

這將使視圖中的上游編碼和 html 模板更容易、更緊湊、更少重復! 只需處理 1 個表格 class 姓名!

此外,所有錯誤檢查都在一個地方,我將管理更少的表單類,這些表單類在其他地方有不同的名稱,在其他 *.py 或 *.html 文件中,因為來自多個模型的字段將合並為一個表單 class , 有一個名字。

今天早上我有一個同事問這個問題。 目前,我認為這是不可能的,但知識基礎比我自己更廣泛的人可能會向我們展示如何做。 我認為您可能必須繼承默認的forms.Form model 才能執行您想執行的操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM