Django 1.10에서 \'TypeError: View Must Be Callable\' 오류를 해결하는 방법은 무엇입니까?

Barbara Streisand
풀어 주다: 2024-10-22 08:00:03
원래의
910명이 탐색했습니다.

How to Resolve the

TypeError: View는 Django 1.10에서 호출 가능해야 합니다

개요:

Django 1.10으로 업그레이드하면 사용자에게 다음과 같은 문제가 발생할 수 있습니다. "인클루드()의 경우 뷰는 호출 가능하거나 목록/튜플이어야 합니다."라는 오류가 발생했습니다. 이 오류는 Django가 URL 패턴에서 뷰 사양을 처리하는 방식이 변경되었기 때문에 발생합니다.

원인:

Django 1.10부터 뷰를 문자열('myapp.views)로 지정 .home')은 더 이상 지원되지 않습니다. 이제 Django에서는 뷰 콜러블을 명시적으로 가져와 URL 패턴에 포함해야 합니다.

해결책:

1. 보기 호출 가능 항목 가져오기 및 지정:

가져온 보기 호출 가능 항목을 포함하도록 URL 패턴을 수정합니다. 패턴에 이름이 없는 경우 올바른 URL 반전을 위해 이름을 추가하는 것이 좋습니다.

<code class="python">from django.contrib.auth.views import login
from myapp.views import home, contact

urlpatterns = [
    url(r'^$', home, name='home'),
    url(r'^contact/$', contact, name='contact'),
    url(r'^login/$', login, name='login'),
]</code>
로그인 후 복사

2. 뷰 가져오기 모듈:

뷰가 많은 프로젝트의 경우 각 뷰를 개별적으로 가져오는 것이 번거로울 수 있습니다. 또는 앱에서 전체 보기 모듈을 가져오는 것을 고려해 보세요.

<code class="python">from django.contrib.auth import views as auth_views
from myapp import views as myapp_views

urlpatterns = [
    url(r'^$', myapp_views.home, name='home'),
    url(r'^contact/$', myapp_views.contact, name='contact'),
    url(r'^login/$', auth_views.login, name='login'),
]</code>
로그인 후 복사

별칭 사용:

가져오려면 as 문(예: myapp_views)을 사용하세요. 이름 충돌이 없는 다중 뷰 모듈.

추가 정보:

  • Django의 URL 디스패처에 대한 자세한 설명은 공식 문서를 참조하세요.
  • 설정 파일(예: INSTALLED_APPS)에서 앱의 보기 모듈 이름이 올바르게 지정되고 가져왔는지 확인하세요.
  • 위 해결 방법에도 불구하고 오류가 지속되면 URL 패턴에 오타나 구문 오류가 있는지 확인하세요. .

위 내용은 Django 1.10에서 \'TypeError: View Must Be Callable\' 오류를 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!