- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是一个难题,
使用 Django 1.4,我无法通过消息中间件设置消息以显示在我的模板中。我梳理了Django docs并确保我的 settings.py 文件引用了相关的应用程序、上下文处理器和中间件。 我已确保我的 View 使用 RequestContext 实例呈现。但是,我仍然无法让任何消息显示在模板中。
设置.py:
MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
)
...
TEMPLATE_CONTEXT_PROCESSORS = (
'django.contrib.auth.context_processors.auth',
'django.core.context_processors.debug',
'django.core.context_processors.i18n',
'django.core.context_processors.request',
'django.core.context_processors.media',
'django.core.context_processors.static',
'django.contrib.messages.context_processors.messages',
'tekextensions.context_processors.admin_media_prefix',
)
...
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.admin', #Admin interface
'django.contrib.admindocs', #Admin docs
...
我的消息 error_level 设置为 20(即“信息”及以上)。我正在使用默认映射。
views.py:
from django.contrib import messages
def index(request, *args, **kwargs):
#Do some funky jazz which works like build the timeline & page vars
...
messages.error = (request,"Horsey Bollox!")
messages.add_message = (request, messages.ERROR,"Why won't this f***ing thing work?") #Attempting alternate method
return render_to_response('funkyjazzdirectory/index.html',
{
'page': page,
'timeline': timeline,
},
context_instance=RequestContext(request))
模板:(funkyjazzdirectory/index.html)
{% extends "base.html" %}
{% if messages.error %}
<div class="messages-errors">
Error:
<ul>
{% for msg in messages %}
<li>{{msg}}</li>
{% endfor %}
</ul>
</div>
{% endif %}
<p>
Other stuff such as iterating through {{timeline}} which renders absolutely fine
</p>
我也试过将 {{msg}} 替换为:
<li>{{msg.message}}</li>
没有成功。
页面的其余部分输出正常,Django 不会抛出错误。控制台没有任何异常。生成的 HTML 代码不包含 div,也不包含列表标签。这个扩展的模板 (base.html) 不使用 {{messages}} 变量,也不调用使用它的模板标签。
我尝试将 {{messages}} 传递到自定义模板标签中,以便在 index.html 模板顶部进行测试。在这里我可以做:
def __init__(self, messages):
self.messages = messages
def render(self, context):
l = dir(context[self.messages])
print(l)
...这会生成一个可能属于消息对象的方法/属性列表。然而,我根本无法对此进行迭代,因为“for m in messages:”甚至一次都没有运行。尝试通过以下方式发现此实体的大小:
print(len(context[self.messages]))
在控制台中没有给我任何信息。
我唯一一次实际输出任何东西是当我手动将消息对象传递到 render_to_response 标记内的模板然后迭代 messages.error ({% for msg in messages.error %}) 产生正确的 div 中的两个要点:第一个填充了看起来像 var 转储的内容:", POST:, COOKIES:{'csrftoken':"... 第二个要点仅包含最后一条错误消息:"Why won这该死的东西行得通吗?”。 (显然这只是一个测试,我没有在通过 render_to_response 传递的字典中保留消息,因为我知道它应该通过上下文到达模板)
那么,我哪里出错了?
为什么我在模板中看不到错误消息?为什么我什至无法让消息显示在控制台中?
任何比我更聪明的人可以发出的光都会非常有帮助!
最佳答案
你似乎使用了一种很奇怪的方式来添加消息:
messages.error = (request,"Horsey Bollox!")
messages.add_message = (request, messages.ERROR,"Why won't this f***ing thing work?")
正确的语法是:
messages.error(request,"Horsey Bollox!")
messages.add_message(request, messages.ERROR,"Why won't this f***ing thing work?")
但是设置和模板都很好。
关于尽管 RequestContext,Django 消息传递框架不显示消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11728282/
我想做的是收集几个请求并触发一次我的代码: RequestContext contextA =requestFactory .dataRequest().save(...).to(..
我想在导航菜单中突出显示当前页面。显然,当您在菜单链接的页面上时,我需要为菜单链接提供一个类似“事件”的类。这是一个经典问题,我见过很多解决方案proposed 。我的问题是我讨厌他们所有人,并且认为
Django RequestContext 是否有办法获取与之关联的 HttpRequest 对象?它是否有像 get_request() 之类的方法来获取传递给构造函数的 request ?我需要从
这是一个难题, 使用 Django 1.4,我无法通过消息中间件设置消息以显示在我的模板中。我梳理了Django docs并确保我的 settings.py 文件引用了相关的应用程序、上下文处理器和中
当构造函数在我的域对象之一上执行时,我需要来自 RequestContext 的数据可用。以下示例是我已经在做的事情。 public Site(IDataUniverseService dataUni
我曾在一个J2EE项目中看到过如下代码。 public class RequestContext { private final static ThreadLocal contexts = n
这个问题在这里已经有了答案: Django 'RequestContext' is not defined - forms.ModelForm (2 个答案) 关闭 7 年前。 伙计们,我是 Pyt
你好,我刚刚在 VS 中创建了一个新的 Empty webApp 并安装了 servicestack Nugets。 我正在寻找响应到内存中的缓存(通过 MemCached),但是在服务 Any 方法
使用 xsuaa approuter 登录获取登录用户对象时出现以下异常 User currentUser = UserAccessor.getCurrentUser(); 我要在不使用 GuiceF
基本上,我试图将未登录的人重定向到登录页面。 我目前使用的是: return render_to_response('login.html', context_instance=RequestCont
我有一个过滤器currency,它接受美元值并将其转换为货币(美元或英镑)。要转换为的货币存储在 session 中,但过滤器不采用 RequestContext,因此我无法直接从那里获取它。 有没有
我需要将字典和对象传递给模板。所以,我这样做 rc = RequestContext(request, {'prob':prob}, {'result':result}) return render_
我正在尝试使用 RequestContext.update() 更新表 以下代码正在工作(jsf):
Primefaces v3.5 尝试使用 RequestContext.getContext().scrollTo("") 在 ajax 请求结束时以编程方式滚动到我的表单。 XHTML 片段:
我是新来的蜜蜂,遇到了关于 Zuul 的一个问题。我首先为 Zuul 过滤器编写测试用例我想知道我是否需要为我的 Zuul 过滤器编写 UT 如果是,那么我正在编写 shouldFilter() 的单
似乎大多数文档都建议: template_values = {} template_values["foo"] = "bar" return render_to_response(path, temp
我的 7.0 之前的 Primefaces 应用程序具有以下代码: RequestContext.getCurrentInstance().execute("window.open('myUrl');
我有我的 OrganizationRequestContext 接口(interface),效果很好: @Service(OrganizationDAO.class) public interface
嗨,scala 和喷雾人! 我在从 RequestContext 中提取 HTTP“Accept” header 并对其进行匹配时遇到了一个恼人的小问题。在像这样的正常路线上: get { res
我似乎无法访问我的 Django 模板中的请求对象。 这是我的 settings.py 文件的一部分: import django.conf.global_settings as DEFAULT_SE
我是一名优秀的程序员,十分优秀!