【问题标题】:Django: div class alert alert-danger does not work properlyDjango:div class alert alert-danger 无法正常工作
【发布时间】:2021-11-10 20:35:49
【问题描述】:

我的forms.py

class SignUpForm(forms.ModelForm):
    name = forms.CharField(label="name", required=True, widget=forms.TextInput())

    email = forms.CharField(label="email", required=True, widget=forms.TextInput())

    password = forms.CharField(label="password", widget=forms.PasswordInput(), required=True)

    confirm_password = forms.CharField(label="password", widget=forms.PasswordInput(), required=True)

    def clean(self):
        cleaned_data = super(SignUpForm, self).clean()
        password = cleaned_data.get("password")
        confirm_password = cleaned_data.get("confirm_password")
        if password != confirm_password:
            self.add_error('confirm_password', "Password and confirm password do not match")
        return cleaned_data

    class Meta:
        model = get_user_model()
        fields = ('name', 'email', 'password')

我的html 文件:

{% block content %}
<form method="post">
  <div class="sign-card">
    <h3>Signup</h3>
    {% csrf_token %}
    <div class="input-div">
      <label for="{{ form.name.id_for_label }}">Username:</label>
      {{ form.name }}
    </div>
    <div class="input-div">
      <label for="{{ form.email.id_for_label }}">Email:</label>
      {{ form.email }}
    </div>
    <div class="input-div">
      <label for="{{ form.password.id_for_label }}">Password:</label>
      {{ form.password }}
    </div>
    <div class="input-div">
      <label for="{{ form.password.id_for_label }}">Confirm Password:</label>
      {{ form.confirm_password }}
    </div>
    {% if form.errors %}
       {% for field in form %}
           {% for error in field.errors %}
              <div class="alert alert-danger">
                   <strong>{{ error|escape }}</strong>
              </div>
           {% endfor %}
       {% endfor %}
    {% endif %}

    <button type="submit" class="btn">Sign up</button>
    <p>Already have account? <a href="{% url 'login' %}">Log In</a></p>
  </div>
</form>
{% endblock %}

我的views.py

def signup(request):
    if request.method == 'POST':
        form = SignUpForm(request.POST)
        if form.is_valid():
            form.save()
            username = form.cleaned_data.get('name')
            password = form.cleaned_data.get('password')
            email = form.cleaned_data.get('email')
            user = authenticate(username=username, password=password, email=email)
            login(request, user)
            return redirect('index')
    else:
        form = SignUpForm()
    return render(request, 'registration/signup.html', {'form': form})

我面临的问题是&lt;div class="alert alert-danger"&gt; 无法正常工作。它打印文本并使其变为粗体,但我没有 CSS 样式(例如这里,例如:https://www.csestack.org/display-messages-form-submit-django/)。我不想使用 Django 消息,也不想更改 views.py 中的代码。我该如何解决?如果没有此更改就无法修复它,那么,我该如何解决修复我的views.py 的问题?

非常感谢您的回答。

【问题讨论】:

    标签: html css python-3.x django


    【解决方案1】:

    实际上,您缺少用于解释 alert-danger 类的 css 文件。

    您可以为它手动编写 css 或包含一些 css 库,例如 bootstrap

    您可以在代码中执行以下操作:&lt;head&gt; 标记中

    <head>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.1/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-F3w7mX95PdgyTmZZMECAngseQB83DfGTowi0iMjiWaeVhAn4FJkqJByhZMI3AhiU" crossorigin="anonymous">
    </head>
    

    那么它应该可以正常工作了。

    【讨论】:

    • @Igor 如果这对你有用,请告诉我。
    • 是的,伙计,就是这么简单。成功了,非常感谢,我现在觉得很傻:D
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-20
    • 1970-01-01
    • 2014-11-12
    • 1970-01-01
    • 1970-01-01
    • 2019-11-09
    相关资源
    最近更新 更多