2017-07-17 73 views
0

我有兩種模式,每種模式都有自己的形式。Django基於類的兩種形式

在模板頁面中,我想顯示兩種形式。 但我可以看到,我們只能定義一個模型和表單。

class TicketView(ObjectEditView): 
    form_class = forms.FirstForm 
    model = First 

    def get(self, request, pk): 

     first = get_object_or_404(First, pk = pk) 
     return render(request, 'my_folder/file.html', { 
      'first': first, 
      'form': self.form_class, 
     }) 

但我怎樣才能通過我的第二種形式?

form_classes = {forms.FirstForm, forms.SecondForm} 

這樣的事情有可能嗎?

在模板第一種形式,我可以通過

{% render_field form.comment %} 

顯示註釋字段我想顯示第二場的形式也這樣。

回答

0

您可以像這樣定義多個表單。當然,您需要像導入第一個窗體一樣導入第二個窗體。在模板中,您將使用{{form2}}。此表單的驗證也需要分開。

class TicketView(ObjectEditView): 
    form_class = forms.FirstForm 
    form_class2 = forms.SecondForm 
    model = First 

    def get(self, request, pk): 
     first = get_object_or_404(First, pk = pk) 
     return render(request, 'my_folder/file.html', { 
      'first': first, 
      'form': self.form_class, 
      "form2":self.form_class2 
     }) 

如果你有問題或這個不起作用發表評論:)

+0

它是如何工作的偉大。只需要將當前值傳遞給html即可。例如,對於狀態我越來越下降,但沒有得到選定的當前值。我們必須用模型做點什麼? – user866933

+0

這取決於你想要做什麼,但要顯示你不需要的表單。你爲什麼得到一個錯誤? – hansTheFranz

+0

它工作得很好,謝謝。只需要將當前值傳遞給html即可。例如,對於狀態我越來越下降,但沒有得到選定的當前值。我們必須用模型做點什麼? – user866933