为什么 Django 消息标签框不起作用?
Why does the Django message tags boxs is not working?
我的消息标签有问题。
所以我有一些发送短信的小应用程序。
当我按下提交按钮和我的网页时,如果短信发送正确,屏幕上会打印 message.success。(成功消息工作正常。文本和绿色显示正确)但是如果没有发送消息,打印了一个message.error,但是只打印了文本,没有打印红色框(这不好,我也想打印红色框)。我在网上搜索了答案,但没有找到 anything.THanks 寻求帮助
views.py
try:
sms = Client.messages.create(
from_="+14509001443",
body=mess,
to=number
)
send = sms.sid
print("DOne")
form.instance.author = request.user
form.save()
messages.success(request, f'Votre message a bien été envoyé!')
return redirect("sms-home")
except:
print("error")
messages.error(request, f'Votre message na pas été envoyé!')
return redirect("sms-home")
home.html
{% extends "sms/base.html" %}
{% load crispy_forms_tags %}
{% block content %}
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
{% if messages %}
{% for message in messages %}
<div class="alert alert-{{ message.tags }}">
{{ message }}
</div>
{% endfor %}
{% endif %}
<div>
<form method="POST">
{% csrf_token %}
{{ form|crispy }}
<button class="btn btn-outline-info" type="submit" value="Save">SEND</button>
</form>
</div>
</body>
</html>
{% endblock content %}
Bootstrap的alert class是alert-danger,我很确定django的错误标签是error
。因此,您的警报 div 正在使用 classes "alert alert-error"
呈现,它与定义的任何样式都不匹配。
要解决这个问题,有几种选择:
- 生成带有标签 'danger' 的通用消息。
- 自定义您的 bootstrap 样式,以便像处理警报危险一样处理警报错误
- 为
messages.error
调用添加 'danger' 作为 extra_tag,然后处理模板中多个标签的可能性。
实际上,如果您已经需要处理模板中多个标签的可能性,我不会感到惊讶。
我的消息标签有问题。 所以我有一些发送短信的小应用程序。
当我按下提交按钮和我的网页时,如果短信发送正确,屏幕上会打印 message.success。(成功消息工作正常。文本和绿色显示正确)但是如果没有发送消息,打印了一个message.error,但是只打印了文本,没有打印红色框(这不好,我也想打印红色框)。我在网上搜索了答案,但没有找到 anything.THanks 寻求帮助
views.py
try:
sms = Client.messages.create(
from_="+14509001443",
body=mess,
to=number
)
send = sms.sid
print("DOne")
form.instance.author = request.user
form.save()
messages.success(request, f'Votre message a bien été envoyé!')
return redirect("sms-home")
except:
print("error")
messages.error(request, f'Votre message na pas été envoyé!')
return redirect("sms-home")
home.html
{% extends "sms/base.html" %}
{% load crispy_forms_tags %}
{% block content %}
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
{% if messages %}
{% for message in messages %}
<div class="alert alert-{{ message.tags }}">
{{ message }}
</div>
{% endfor %}
{% endif %}
<div>
<form method="POST">
{% csrf_token %}
{{ form|crispy }}
<button class="btn btn-outline-info" type="submit" value="Save">SEND</button>
</form>
</div>
</body>
</html>
{% endblock content %}
Bootstrap的alert class是alert-danger,我很确定django的错误标签是error
。因此,您的警报 div 正在使用 classes "alert alert-error"
呈现,它与定义的任何样式都不匹配。
要解决这个问题,有几种选择:
- 生成带有标签 'danger' 的通用消息。
- 自定义您的 bootstrap 样式,以便像处理警报危险一样处理警报错误
- 为
messages.error
调用添加 'danger' 作为 extra_tag,然后处理模板中多个标签的可能性。
实际上,如果您已经需要处理模板中多个标签的可能性,我不会感到惊讶。