我需要在我的 ModelForm 中添加一个“取消”按钮,我使用的是清晰的表单,但是当我添加href='personnel-index'
以重定向回列表视图时,它没有。我检查了他们的文档,但在 Google 上没有运气也没有任何运气。
问问题
4392 次
3 回答
6
有时,浏览器的“后退”按钮与 Web 表单中的“取消”按钮一样好,但如果您确定需要一个,则始终可以在简洁的表单中使用 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>""")
然后由您决定链接的样式,使其看起来像一个按钮。
于 2014-02-07T19:29:02.843 回答
5
不一定理想,但这应该可以处理大多数情况。
self.helper.add_input(Button('cancel', 'Cancel', css_class='btn-default', onclick="window.history.back()"))
于 2014-04-12T17:20:16.333 回答
2
抱歉,我无法评论现有解决方案,因为我的声誉不够好。这就是为什么我要添加上面提出的 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>'),
)
它呈现两个按钮“保存”和“取消”。
于 2014-06-18T09:59:29.293 回答