2013-12-18 16 views
2

我需要給我的ModelForm添加一個'取消'按鈕,我使用的是脆皮形式,但是當我添加href='personnel-index'重定向回到列表視圖時,它不會。我已經檢查了他們的文檔,但在Google上沒有運氣也沒有任何運氣。如何使一個按鈕的href使用urls.py?

+0

此答案:http://stackoverflow.com/a/14423114/1297812 – laffuste

回答

4

有時瀏覽器的「返回」按鈕與網頁表單中的「取消」按鈕一樣好,但如果您確定需要使用該按鈕,則始終可以使用HTML格式的HTML對象。像這樣的東西會工作:

HTML("""<a class="classes-for-styling" href="/personnel/list/">Cancel</a>""") 

而且,甚至更好,你可以包括情境感知型代碼,以避免硬編碼的URL到您的形式:

HTML("""<a class="classes-for-styling" href="{% url 'personnel-index' %}">Cancel</a>""") 

那麼它只是給你的風格你鏈接,所以它看起來像一個按鈕。

5

不一定理想,但這應該可以處理大多數情況。

self.helper.add_input(Button('cancel', 'Cancel', css_class='btn-default', onclick="window.history.back()")) 
1

對不起,我不能評論現有的解決方案,因爲我的聲譽不夠好。這就是爲什麼我添加的是上面提出的HTML(香脆表單對象)解決方案的代碼示例:

class MoodForm(forms.ModelForm): 
    class Meta: 
     model = Mood 

    def __init__(self, *args, **kw): 
     super(MoodForm, self).__init__(*args, **kw) 
     self.helper = FormHelper() 
     layout = Layout(
      ButtonHolder(
       Submit('Save', 'Save', css_class='button white'), 
       HTML('<a class="btn btn-warning" href={% url "mood:list" %}>Cancel</a>'), 
      ), 
     ) 
     self.helper.add_layout(layout)   

最重要的東西在這裏是:

ButtonHolder(
    Submit('Save', 'Save', css_class='button white'), 
    HTML('<a class="btn btn-warning" href={% url "mood:list" %}>Cancel</a>'), 
) 

它呈現兩個按鈕「保存」, '取消'。