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