업그레이드 후 장고에서 클래스 기반 뷰로 변경하려고하고 있는데 두 가지 질문이 있습니다. 이것은 내 코드입니다.장고에서 클래스 뷰로 변경하는 동안의 문제
# urls.py
urlpatterns += patterns('project.app.views',
('^$', 'index'), # Old style
url(r'^test/$', SearchView.as_view()), # New style
)
# views.py
class SearchView(TemplateView):
template_name = 'search.html'
def get_context_data(self, **kwargs):
messages.success(request, 'test')
return {'search_string': 'Test'}
이 코드를 실행하면 처음에는 name 'SearchView' is not defined
오류가 발생합니다. 아무도 이유를 아나요?
from project.app.views import SearchView
을 추가하는 것은 엉망이며 내가 원하는 방식이 아니지만, 나머지 작업을 할 수 있는지 알아보기 위해 노력합니다. 그렇다면 messages
때문에 global name 'request' is not defined
이 나옵니다. 이것은 의미가 있지만 여기에 요청 객체를 얻으려면 어떻게해야합니까?
그래서 알고 싶습니다. : 의도 한대로보기가 작동하고 메시지를 get_context_data()
에 어떻게 사용합니까?
감사합니다. 장고는 'project.app.views'의 SearchView 클래스를 이전 스타일 함수와 마찬가지로 패턴으로 찾을 것이라고 생각했습니다. 나는 그것이 이상하지 않다는 것을 안다. – olofom
가져 오기를하지 않으면 원래 'urls.py'가 유효한 Python이 아닙니다. 장고는 그렇게 할 수 없습니다. –