2017-10-19 17 views
-2

bonjour les gars j'ai une erreur avec django je ne sais pas où exactement l'erreur est s'il vous plaît jeter un oeil à mon code et m'aider à résoudre c'est mon point de vue .py de notes appTypeError à/notes/index/contexte doit être un dict plutôt que RequestContext

from django.shortcuts import render 
from django.http import HttpResponse 
from django.template import loader,RequestContext 

# Create your views here. 
def index(request): 
    template=loader.get_template("index.html") 
    rc=RequestContext(request,{'username':'hello'}) 
    return HttpResponse(template.render(rc)) 

ceci est ma configuration settings.py du dossier de projet AppSuite

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 


# Quick-start development settings - unsuitable for production 
# See https://docs.djangoproject.com/en/1.11/howto/deployment/checklist/ 

# SECURITY WARNING: keep the secret key used in production secret! 
SECRET_KEY = '&1hv71rr0e7b!m)7sv(p7of0p7q0%-mb9o*^r*amw$d1o3%=s_' 

# SECURITY WARNING: don't run with debug turned on in production! 
DEBUG = True 

ALLOWED_HOSTS = [] 


# Application definition 

INSTALLED_APPS = [ 
    'django.contrib.admin', 
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.messages', 
    'django.contrib.staticfiles', 
] 

MIDDLEWARE = [ 
    'django.middleware.security.SecurityMiddleware', 
    'django.contrib.sessions.middleware.SessionMiddleware', 
    'django.middleware.common.CommonMiddleware', 
    'django.middleware.csrf.CsrfViewMiddleware', 
    'django.contrib.auth.middleware.AuthenticationMiddleware', 
    'django.contrib.messages.middleware.MessageMiddleware', 
    'django.middleware.clickjacking.XFrameOptionsMiddleware', 
] 

ROOT_URLCONF = 'appsuite.urls' 

WSGI_APPLICATION = 'appsuite.wsgi.application' 

TEMPLATES = [ 
    { 
     'BACKEND': 'django.template.backends.django.DjangoTemplates', 
     'DIRS': [os.path.join(BASE_DIR, 'notes/templates')], 

     'APP_DIRS': True, 
     'OPTIONS': { 
      'context_processors': [ 
       'django.template.context_processors.debug', 
       'django.template.context_processors.request', 
       'django.contrib.auth.context_processors.auth', 
       'django.contrib.messages.context_processors.messages', 

      ], 
     }, 
    }, 
] 



# Database 
# https://docs.djangoproject.com/en/1.11/ref/settings/#databases 

DATABASES = { 
    'default': { 
     'ENGINE': 'django.db.backends.sqlite3', 
     'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), 
    } 
} 


# Password validation 
# https://docs.djangoproject.com/en/1.11/ref/settings/#auth-password-validators 

AUTH_PASSWORD_VALIDATORS = [ 
    { 
     'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', 
    }, 
    { 
     'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', 
    }, 
    { 
     'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', 
    }, 
    { 
     'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', 
    }, 
] 


# Internationalization 
# https://docs.djangoproject.com/en/1.11/topics/i18n/ 

LANGUAGE_CODE = 'en-us' 

TIME_ZONE = 'UTC' 

USE_I18N = True 

USE_L10N = True 

USE_TZ = True 


# Static files (CSS, JavaScript, Images) 
# https://docs.djangoproject.com/en/1.11/howto/static-files/ 

STATIC_URL = '/static/' 

et mon index.html est

<h3>{{username}}</h3> 

et c'est ce que le iam d'erreur se lorsque j'ai essayé de charger la page

TypeError at /notes/index/ 
context must be a dict rather than RequestContext. 
Request Method: GET 
Request URL: http://127.0.0.1:8000/notes/index/ 
Django Version: 1.11.6 
Exception Type: TypeError 
Exception Value:  
context must be a dict rather than RequestContext. 
Exception Location: C:\Users\madhumani\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\template\context.py in make_context, line 287 
Python Executable: C:\Users\madhumani\AppData\Local\Programs\Python\Python36-32\python.exe 
Python Version: 3.6.2 
Python Path:  
['D:\\python programs\\appsuite', 
'C:\\Users\\madhumani\\AppData\\Local\\Programs\\Python\\Python36-32\\python36.zip', 
'C:\\Users\\madhumani\\AppData\\Local\\Programs\\Python\\Python36-32\\DLLs', 
'C:\\Users\\madhumani\\AppData\\Local\\Programs\\Python\\Python36-32\\lib', 
'C:\\Users\\madhumani\\AppData\\Local\\Programs\\Python\\Python36-32', 
'C:\\Users\\madhumani\\AppData\\Local\\Programs\\Python\\Python36-32\\lib\\site-packages'] 
Server time: Thu, 19 Oct 2017 14:08:41 +0000 

et voici comment mon projet est:

appsuite(MAIN FOLDER) 
__db.sqlite3 
__manage.py 
__appsuite 
     __pycache__ 
     __init.py__ 
     __settings.py 
     __urls.py 
     __wsgi.py 
__notes 
     __pycache 
     __migrations 
     __templates 
      __index.html 
     __init.py 
     __admin.py 
     __apps.py 
     __models.py 
     __test.py 
     __urls.py 
     __views.py 

et s'il vous plaît me aide pour déterminer quelle est la solution merci d'avance

+0

Qu'est-ce qui n'est pas clair à propos de ce message d'erreur? N'utilisez pas un RequestContext, utilisez un dict. –

+0

@DanielRoseman merci de me répondre mais je suis incapable de comprendre ce que vous dites exactement s'il vous plaît pouvez-vous le préciser, merci –

+0

Je ne peux littéralement pas comprendre comment cela peut être flou. Vous utilisez un RequestContext. Ne pas. –

Répondre

0

Comme le message d'erreur le suggère, vous devriez utiliser un dictionnaire ordinaire au lieu d'un RequestContext. Comme votre code d'origine utilise RequestContext, vous pouvez passer le request comme argument lorsque vous appelez template.render().

def index(request): 
    template=loader.get_template("index.html") 
    context = {'username':'hello'} 
    return HttpResponse(template.render(context, request=request)) 

Normalement, vous ne générez pas un modèle de ce type. Il est beaucoup plus rapide d'utiliser le raccourci render.

from django.shortcuts import render 

def index(request): 
    context = {'username':'hello'} 
    return render(request, 'index.html', context) 

Notez que le code dans la question est très ancienne - il a été mis à jour depuis Django 1.8 a été libéré en 2015. Je recommande la suite d'un tutoriel différent, sinon vous risquez de frapper des problèmes similaires.

+0

merci beaucoup bro, problème résolu –