developer tip

Django 오류 : render_to_response ()에 예기치 않은 키워드 인수 'context_instance'가 있습니다.

copycodes 2020. 11. 27. 08:22
반응형

Django 오류 : render_to_response ()에 예기치 않은 키워드 인수 'context_instance'가 있습니다.


Django 1.10으로 업그레이드 한 후 오류가 발생 render_to_response() got an unexpected keyword argument 'context_instance'합니다.

내 견해는 다음과 같습니다.

from django.shortcuts import render_to_response
from django.template import RequestContext

def my_view(request):
    context = {'foo': 'bar'}
    return render_to_response('my_template.html', context, context_instance=RequestContext(request))

다음은 전체 역 추적입니다.

Traceback:

File "/Users/alasdair/.virtualenvs/django110/lib/python2.7/site-packages/django/core/handlers/exception.py" in inner
  39.             response = get_response(request)

File "/Users/alasdair/.virtualenvs/django110/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response
  187.                 response = self.process_exception_by_middleware(e, request)

File "/Users/alasdair/.virtualenvs/django110/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response
  185.                 response = wrapped_callback(request, *callback_args, **callback_kwargs)

File "/Users/alasdair/dev/rtr/rtr/urls.py" in my_view
  26.     return render_to_response('my_template.html', context,  context_instance=RequestContext(request))

 Exception Type: TypeError at /
Exception Value: render_to_response() got an unexpected keyword argument 'context_instance'

context_instance매개 변수에서이 render_to_response되었다 장고 1.8에서 사용되지 않는 , 그리고 장고 1.10에서 제거.

해결책은 render자동으로 RequestContext.

다음과 같이 가져 오기 및보기를 업데이트하십시오. 참고 render소요 request의 첫 번째 인수로 객체를.

from django.shortcuts import render

def my_view(request):
    context = {'foo': 'bar'}
    return render(request, 'my_template.html', context)

render이 변경 장고의 이전 버전과 호환되도록 바로 가기, 장고 1.3에서 소개되었습니다.


Django 1.8에서 호환됩니다.

from django.shortcuts import render_to_response
from django.template import RequestContext

def my_view(request):
    context = {'foo': 'bar'}
    return render_to_response('my_template.html', {'context':context}, context_instance=RequestContext(request))

Django 1.11에서

from django.shortcuts import render
from django.template import RequestContext

def my_view(request):
    context = {'foo': 'bar'}
    return render(request, 'my_template.html', context)

장고 2.0.7 파이썬 3.5

project / urls.py에서

handler404 = 'project.views.not_found'
handler500 = 'project.views.server_error'

project / views.py에서

def not_found(request, exception=None):
response = render(request, '404.html', {})
response.status_code = 404
return response

def server_error(request, exception=None):
response = render(request, '500.html', {})
response.status_code = 500
return response

exception=None is passed because otherwise it throws TypeError: server_error() missing 1 required positional argument: 'exception'

참고URL : https://stackoverflow.com/questions/38739422/django-error-render-to-response-got-an-unexpected-keyword-argument-context-i

반응형