You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django Wizard输入框按回车跳转至前序步骤问题求助

Django Wizard 问题修复方案

问题1:输入框按回车跳回上一步

问题根源

表单内存在多个type="submit"元素时,浏览器按下回车键会默认触发DOM中第一个submit元素,也就是你的「上一步」按钮。

修复方案

方案1:调整按钮DOM顺序(推荐)

将「下一步」按钮放在「上一步」按钮之前,让回车优先触发下一步操作,再通过CSS调整视觉布局保持原样式:

<div class="multiStep-footer-flex">
    <!-- 先渲染下一步/注册按钮 -->
    {% if wizard.steps.current != wizard.steps.last %}
    <div class="multiStep-footer-right">
        <input type="submit" class="primry-btn-2 lg-btn" value="{% translate "Next" %}"/>
    </div>
    {% else %}
    <div class="multiStep-footer-right">
        <input type="submit" class="primry-btn-2 lg-btn" value="{% translate "Register" %}"/>
    </div>
    {% endif %}

    <!-- 再渲染上一步按钮 -->
    <div class="multiStep-footer-left">
        {% if wizard.steps.prev %}
        <button formnovalidate name="wizard_goto_step" type="submit" class="primry-btn-2 lg-btn" value="{{ wizard.steps.prev }}">{% translate "prev step" %}</button>
        {% endif %}
    </div>
</div>

方案2:给「下一步」按钮添加autofocus属性

让浏览器默认聚焦到「下一步」按钮,回车时直接触发该按钮:

<input type="submit" class="primry-btn-2 lg-btn" value="{% translate "Next" %}" autofocus/>

最后一步时,给「Register」按钮添加autofocus即可。


问题2:返回上一步时密码字段为空

问题根源

Django出于安全考虑,默认不会在表单中保留密码字段的输入值,即使数据已存储在Wizard的会话中。

修复方案

方案1:重写Wizard的get_form_initial方法

从Wizard存储中提取已保存的密码,填充到账户信息步骤的初始值:

from django.contrib.formtools.wizard.views import SessionWizardView

class YourWizardView(SessionWizardView):
    def get_form_initial(self, step):
        initial = super().get_form_initial(step)
        # 假设账户信息步骤的标识为'account'
        if step == 'account':
            stored_data = self.get_cleaned_data_for_step('account')
            if stored_data and 'password' in stored_data:
                initial['password'] = stored_data['password']
        return initial

方案2:修改密码字段的Widget

给密码字段设置render_value=True,强制保留输入值:

from django import forms

class AccountForm(forms.Form):
    password = forms.CharField(
        widget=forms.PasswordInput(render_value=True)
    )

内容的提问来源于stack exchange,提问作者Israa Salameh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 22:05:26