我需要在我的ModelForm中添加一个“取消”按钮,我使用的是脆弱的表单,但是当我添加href='personnel-index'
重定向回列表视图时,它却没有。我已经检查了他们的文档,但没有运气也没有运气在谷歌。
答案 0 :(得分:5)
有时,浏览器的“后退”按钮与网络表单中的“取消”按钮一样,但如果您完全确定需要,则可以始终以松散的形式使用HTML对象。像这样的东西会起作用:
HTML("""<a class="classes-for-styling" href="/personnel/list/">Cancel</a>""")
而且,更好的是,您可以包含上下文感知标记,以避免将网址硬编码到您的表单中:
HTML("""<a class="classes-for-styling" href="{% url 'personnel-index' %}">Cancel</a>""")
然后,您可以自行设置链接样式,使其看起来像一个按钮。
答案 1 :(得分:5)
不一定理想,但这应该处理大多数情况。
self.helper.add_input(Button('cancel', 'Cancel', css_class='btn-default', onclick="window.history.back()"))
答案 2 :(得分:1)
抱歉,我无法对现有解决方案发表评论,因为我的声誉不够好。这就是为什么我要为上面提出的HTML(crispy form object)解决方案添加代码示例的原因:
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>'),
)
它呈现两个按钮&#39; Save&#39;和&#39;取消&#39;。