2017-05-24 46 views
1

我做了哪些工作不一个Django的背景处理器...它也呈现出警告messages.First会显示警告信息: -Django Context处理器不工作?

警告::(1_8.W001)的独立TEMPLATE_ *设置在Django 1.8中不推荐使用 ,模板字典优先使用 。您必须将以下设置的值放入默认模板字典 :TEMPLATE_CONTEXT_PROCESSORS。

现在,我已经创造了MYM方面俗处理器这样

在settings.py:-

TEMPLATE_CONTEXT_PROCESSORS = (
    "django.core.context_processors.auth", 
    "django.core.context_processors.debug", 
    "django.core.context_processors.i18n", 
    "django.core.context_processors.media", 
    "cms.utils.context_processors.permission_based_hidding_of_sidebar" 
) 

,创造我的utills机能的研究中,背景俗处理器: -

from django.shortcuts import render, redirect, get_object_or_404 
from django.contrib.auth.decorators import login_required 
from django.views.decorators.csrf import csrf_exempt 
from cms.models.cmsUser import CmsUser 
from cms.models.masterUsersPermissionTabMappings import MasterUsersPermissionTabMappings 

@login_required 
@csrf_exempt 
def permission_based_hidding_of_sidebar(request): 
    cms_user = CmsUser.objects.get(userId=request.user.id) 
    print cms_user.id 
    universityPermission = MasterUsersPermissionTabMappings.objects.filter(userId=cms_user).get(permissionTypeId=1) 
    cmsUserPermission = MasterUsersPermissionTabMappings.objects.filter(userId=cms_user).get(permissionTypeId=2) 
    promotedPermission = MasterUsersPermissionTabMappings.objects.filter(userId=cms_user).get(permissionTypeId=3) 
    appUserPermission = MasterUsersPermissionTabMappings.objects.filter(userId=cms_user).get(permissionTypeId=4) 
    newsPermission = MasterUsersPermissionTabMappings.objects.filter(userId=cms_user).get(permissionTypeId=5) 
    emailPermission = MasterUsersPermissionTabMappings.objects.filter(userId=cms_user).get(permissionTypeId=6) 
    pushPermission = MasterUsersPermissionTabMappings.objects.filter(userId=cms_user).get(permissionTypeId=7) 
    chatPermission = MasterUsersPermissionTabMappings.objects.filter(userId=cms_user).get(permissionTypeId=8) 
    frontendPermission = MasterUsersPermissionTabMappings.objects.filter(userId=cms_user).get(permissionTypeId=9) 
    print universityPermission 
    a='hello' 

    return render(request,'templates/admin_user_management/admin_user_add.html',{ 
     'universityPermission':universityPermission,'cmsUserPermission':cmsUserPermission, 
     'promotedPermission':promotedPermission,'appUserPermission':appUserPermission, 
     'newsPermission':newsPermission,'emailPermission':emailPermission,'pushPermission':pushPermission, 
     'chatPermission':chatPermission,'frontendPermission':frontendPermission,'sayHello':a 
    }) 

我想用我的观点来看它: -

return render(request,template-name,{},context_instance=RequestContext(request)) 

它显示错误context_instance没有在视图中定义。是否有任何方式我可以在视图中使用它。

回答

2

您的permission_based_hidding_of_sidebar方法看起来像一个视图,而不是一个上下文处理器。模板上下文处理器应该返回一个字典,而不是来自render()的HTTP响应。它使用login_requiredcsrf_exempt修饰器没有意义。

在您看来,您并不需要context_instance=RequestContext(request)render快捷方式会自动使用请求来呈现模板。

最后,您可以通过更新您的设置to use TEMPLATES来修复1_8.W001警告。您应该更新context_processors,OPTIONS,而不是设置TEMPLATE_CONTEXT_PROCESSORS

+0

工作.........谢谢 –