【问题标题】:How to prevent to reset or clearing the django form fields if any error occurs during submit?如果提交期间出现任何错误,如何防止重置或清除 django 表单字段?
【发布时间】:2017-04-18 07:22:47
【问题描述】:

我正在使用 django registration-redux 进行用户注册。 当我输入相同的用户 ID 时,它会显示错误并清除表单的所有输入字段。如何防止该错误发生,但输入字段不应该被清除。

<form method="POST" role="form" class="form-horizontal">
                {% csrf_token %}
            <div class="form-group">
                <label class="col-sm-2 lab" for="id_username">Username *</label>
                <div class="col-sm-10">
                    <input  name="username" id='id_username' class='form-control' placeholder='Username' minlength="5" maxlength="15" type='text' required></div>
                </div>

            <div class="form-group">
                <label class="col-sm-2 lab" for="id_email">E-Mail *</label>
                <div class="col-sm-10" >
                    <input class='form-control' name="email" id='id_email' placeholder='user@mydomain.com' pattern="(^[a-zA-Z0-9_.+-]+@[a-zA-Z]+\.com$)|(^[a-zA-Z0-9_.+-]+@[a-zA-Z]+\.org$)|(^[a-zA-Z0-9_.+-]+@[a-zA-Z]+\.co\.in$)" maxlength="200" type='email' required>
                </div>
            </div>

            <div class="form-group">
                <label class="col-sm-2 lab">Password *</label>
                <div class="col-sm-10">
                    <input class="form-control" name="password1" id="id_password1" placeholder="Password" minlength="8" maxlength="15" type="password" required>
                </div>
            </div>
            <div class="form-group">
                <label class="col-sm-2 lab2">Password Confirmation *</label>
                <div class="col-sm-10">
                    <input class="form-control" name="password2" id="id_password2" placeholder="Confirm Password" minlength="8" maxlength="15" type="password" required>
                </div>
            </div>
 <button  type="submit" value= "register">Register</button>
</form>

我应该使用 java 脚本还是应该帮助我?

【问题讨论】:

  • 如何验证是否输入了相同的 userId?
  • 我使用了 django 包,所有视图都是内置的。我刚刚渲染了表单
  • 当任何 x 用户输入相同的用户 ID 时,它会显示错误(用户已经退出)并清除表单输入字段
  • 我想阻止这种形式的清除
  • 任何帮助,请您的声誉良好

标签: javascript python django forms


【解决方案1】:

理想情况下,您的表单应保留条目。根据我的推断,您似乎没有在模板中使用视图传递的form

以下是有关如何更新模板的示例:

<form action="/action/" method="POST">
        {% csrf_token %}
        <div class="form">
            <br />
            {{ form.username}}
            <br />
            <input type="submit" name="submit">
        </div>
    </form>

现在在您的操作视图中,您可以轻松地在表单中传递变量。类似的东西:

def action(request):
    if request.method == "POST":
        form = CustomForm(request.POST)
        if form.is_valid():
            form.save()
        else:
            print("form.errors:", form.errors)
    else:
        form = CustomForm()
    ResponseDict = {"username": username}
    return render_to_response("UserName.html", ResponseDict, 
        context_instance = RequestContext(request))

更多参考 - Displaying form using template

主要的本质在于你进入你的视野,然后进行必要的调用。请注意,无论您在何处呈现 html,您也在传递表单值。

希望这会有所帮助。

【讨论】:

  • 我想在前端解决这个问题,因为我使用了一个包来注册一个我看不到它的用户
  • 哦。那更简单。您可以在存储变量中定义它或缓存它。你能告诉我你在前端使用什么语言吗?
  • html5 和引导
  • 嘿 Pansul 任何帮助
  • 我建议你在这里使用 Jquery。并将您的响应存储在缓存中。如果未设置该值,它将从缓存中获取该值并更新您的表单。这有帮助吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-08-12
  • 2014-04-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-17
相关资源
最近更新 更多