Django crispy-forms - 自定义按钮

3 投票
2 回答
2586 浏览
提问于 2025-04-26 18:48

我在我的django-crispy-form里有两个按钮。

    self.helper.add_input(Submit('submit', 'Submit'))
    self.helper.add_input(Button('cancel', 'Cancel'))

提交按钮工作得很好,但取消按钮没有任何反应。因为我对django和python还很陌生,我该如何给取消按钮添加一个跳转到某个网址的功能呢(比如下面的这个网址)?

url(r'^customeroverview/$', 'customer.views.customeroverview', name='customeroverview'),

我听说可以用jQuery来实现,但我从来没有用过这个。很想学习,如果这是最好的选择,我愿意听听建议。请记住,我使用的是crispy表单,并希望尽量少用html。

如果使用jQuery;

  1. jQuery代码应该怎么写才能打开一个网址?
  2. 我需要创建一个新的jQuery文件来放这个代码吗?
  3. jQuery文件应该放在我的静态文件夹里吗?
  4. 我该如何从crispy表单里的按钮调用jQuery?
暂无标签

2 个回答

2

这个页面提供了另一种方法:

HTML("""<a role="button" class="btn btn-default"
    href="{% url "some_cancel_url" %}">Cancel</a>"""),

所以 some_cancel_url 是你想要跳转的那个网址的 名称

这看起来有点不太正规,但我觉得用锚点比用JavaScript要好。这样对搜索引擎更友好,也适合那些没有开启JavaScript的人,或者只是想通过鼠标悬停来查看链接的人。

4

我找到了办法,我用了下面的代码:

self.helper.add_input(Button('cancel', "Cancel", css_class='btn', onclick="javascript:location.href = '/customeroverview';"))

撰写回答