2014-02-10 62 views
1

在我forms.py我有以下幾點:如何更改從一個視圖中提交按鈕文本crispy-forms?

self.helper.layout = Layout(
    Fieldset(
     None, 
     'name' 
    ), 
    FormActions(
     Submit('submit', 'Add Thing', css_class='btn-primary') 
    ) 
) 

但我使用了同樣的看法添加和編輯的項目。所以我想根據我的views.py中的一些條件來改變按鈕文本(上面的添加東西)。我怎樣才能做到這一點?

+0

我以前沒有使用過脆-形式。不過,Django仍然是python。所以你不能根據條件定義一個函數來呈現不同的類(如果這是你正在尋找的)? – user2707389

回答

0

一種方法是將參數傳遞給確定提交按鈕文本的表單類。

甲虛設例如:

視圖

... 
form = MyFormClass(is_add=True) 
... 

形式類

class MyFormClass(forms.Form): 
    def __init__(self, *args, **kwargs): 
     self.is_add = kwargs.pop("is_add", False) 
     super(MyFormClass, self).__init__(*args, **kwargs) 

    @property 
    def helper(self): 
     helper = FormHelper() 
     helper.layout = Layout(
      FormActions(
       Submit('submit', 'Add Thing' if self.is_add else 'Edit thing', css_class='btn-primary') 
      ) 
     ) 
     return helper 
相關問題