使用 django 和脆皮从视图渲染 Bootstrap4 表单“无效”类

问题描述

我正在尝试对 django 表单进行服务器端验证,这是一个包含用户信息的简单表单,验证是对 views.py 中的电子邮件字段进行的。正如标题所说,我想呈现相同的旧表单,但使用电子邮件输入类 =“.... is-invalid”,以防数据库中存在具有相同电子邮件的条目。

表单应该是这样的:Server side

下面是views.py:

def client_create_view(request):
form = ClientForm(request.POST or None)
if form.is_valid():
    obj = form.save(commit=False)
    mail = form.cleaned_data['Mail']
    user = Client.objects.get(Mail=mail)
    if user != None:
        print("user exists @: " + user.Mail)
        form.invalid()
        context = {
            'validation': False,'form':form
        }
        return render(request,"clients/test.html",context)

forms.py:

class ClientForm(forms.ModelForm):
FName       = forms.CharField(label='First Name',widget=forms.TextInput(attrs={"placeholder":"Your First Name","class":"form-control","id":"validationCustom01"}),required=True)
LName       = forms.CharField(label='Last Name',widget=forms.TextInput(attrs={"placeholder":"Your Last Name"}),required=True)
Phone       = forms.CharField(label='Phone Number',widget=forms.TextInput(attrs={"placeholder":"Your Phone Number"}),required=True)
Mail        = forms.EmailField(label='Email',widget=forms.TextInput(attrs={"placeholder":"Your Email"}),required=True)
Address     = forms.CharField(label='Address',widget=forms.TextInput(attrs={"placeholder":"Your Address"}),required=True)
Password    = forms.CharField(label='Password',widget=forms.TextInput(attrs={"placeholder":"Password","type":"password"}),required=True)
class Meta:
    model = Client
    fields = [
        'FName','LName','Phone','Mail','Address','Password'
    ]

test.html:

{% load crispy_forms_tags %}
{% block content %}

<form id="example-form" method="post" class="d-flex justify-content-center align-items-center row g-3 needs-validation" novalidate>
    {% csrf_token %}
    {% comment %} {{ form|crispy }} {% endcomment %}
    <div class="col-md-3">
        {{ form.FName|as_crispy_field }}
        {{ form.Mail|as_crispy_field }}
        <div class="valid-Feedback">
            Looks good!
        </div>
        {% comment %} {{ form.Mail|as_crispy_field }} {% endcomment %}
    </div>
    <div class="d-flex justify-content-center align-items-center col-12">
        <button type="submit" class="btn btn-success">Enregistrer</button>
    </div>
</form>
{% include 'footer.html' %}
{% endblock %}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...