Django 消息框架不显示消息?
Django messages framework not displaying message?
我正在尝试构建一个社区门户,并致力于向用户显示一次性消息,例如 "login successful" 等;并且正在使用 Django 的消息框架。
我的模板有以下行目前什么都不做:
{% if messages %}{% for message in messages %}<script>alert({{ message }});</script>{% endfor %}{% endif %}
奇怪的是,以下每个作品:
{% if messages %}{% for message in messages %}<script>alert();</script>{% endfor %}{% endif %}
{% if messages %}{% for message in messages %}<script>alert("Welcome");</script>{% endfor %}{% endif %}
据此,我得出结论,我没有正确创建、存储或传递消息。但是,我正在检查文档,我的语法似乎没问题。
我的消息创建; views.py:
def login(request):
userName = request.POST.get('usrname',None)
userPass = request.POST.get('psw',None)
user = authenticate(username=sanitize_html(userName), password=userPass)
if user is not None:
if user.is_active:
auth.login(request, user)
messages.add_message(request, messages.INFO, 'Successfully logged in!')
else:
messages.add_message(request, messages.INFO, 'Login not successful. Please try again.')
return HttpResponseRedirect('/home/')
我的消息检索和传递,views.py(映射到 url '/home/'):
def test(request):
messagealert = []
mess = get_messages(request)
for message in mess:
messagealert.append(message)
if request.user.is_authenticated():
student_user = get_student_user(request.user)
student_user.first_name = request.user.first_name
student_user.last_name = request.user.last_name
student_user.email = request.user.email
content = {
'student_user': student_user,
'messages': messagealert,
}
else:
content = {
'student_user': None,
'messages': messagealert,
}
return render_to_response('index3.html', content)
我的 index3.html 模板是上面给出的行的模板。
我在这里错过了什么?
不要在 test
视图中使用 render_to_response
。它没有 运行 上下文处理器,这些处理器需要将 messages
和其他有用的项目(例如 user
)插入上下文。
改用render
:
return render(request, 'index3.html', context)
我正在尝试构建一个社区门户,并致力于向用户显示一次性消息,例如 "login successful" 等;并且正在使用 Django 的消息框架。
我的模板有以下行目前什么都不做:
{% if messages %}{% for message in messages %}<script>alert({{ message }});</script>{% endfor %}{% endif %}
奇怪的是,以下每个作品:
{% if messages %}{% for message in messages %}<script>alert();</script>{% endfor %}{% endif %}
{% if messages %}{% for message in messages %}<script>alert("Welcome");</script>{% endfor %}{% endif %}
据此,我得出结论,我没有正确创建、存储或传递消息。但是,我正在检查文档,我的语法似乎没问题。
我的消息创建; views.py:
def login(request):
userName = request.POST.get('usrname',None)
userPass = request.POST.get('psw',None)
user = authenticate(username=sanitize_html(userName), password=userPass)
if user is not None:
if user.is_active:
auth.login(request, user)
messages.add_message(request, messages.INFO, 'Successfully logged in!')
else:
messages.add_message(request, messages.INFO, 'Login not successful. Please try again.')
return HttpResponseRedirect('/home/')
我的消息检索和传递,views.py(映射到 url '/home/'):
def test(request):
messagealert = []
mess = get_messages(request)
for message in mess:
messagealert.append(message)
if request.user.is_authenticated():
student_user = get_student_user(request.user)
student_user.first_name = request.user.first_name
student_user.last_name = request.user.last_name
student_user.email = request.user.email
content = {
'student_user': student_user,
'messages': messagealert,
}
else:
content = {
'student_user': None,
'messages': messagealert,
}
return render_to_response('index3.html', content)
我的 index3.html 模板是上面给出的行的模板。
我在这里错过了什么?
不要在 test
视图中使用 render_to_response
。它没有 运行 上下文处理器,这些处理器需要将 messages
和其他有用的项目(例如 user
)插入上下文。
改用render
:
return render(request, 'index3.html', context)