>  기사  >  백엔드 개발  >  Django URL에서 \"TypeError: view는 호출 가능 또는 목록/튜플이어야 합니다\"를 수정하는 방법은 무엇입니까?

Django URL에서 \"TypeError: view는 호출 가능 또는 목록/튜플이어야 합니다\"를 수정하는 방법은 무엇입니까?

DDD
DDD원래의
2024-10-22 08:05:30698검색

How to Fix

Django URL 오류: "TypeError: 뷰는 include()의 경우 호출 가능 또는 목록/튜플이어야 합니다" 이해

Django 1.10으로 업그레이드하면 URL 패턴의 뷰 정의 형식과 관련된 오류가 발생할 수 있습니다.

TypeError: view must be a callable or a list/tuple in the case of include().

원인:

Django 1.10 이전, 뷰는 'myapp.views.home'과 같이 모듈 내 위치를 참조하는 문자열로 지정될 수 있습니다. 그러나 이 방법은 더 이상 지원되지 않습니다.

해결책:

Django 1.10 이상에서는 뷰 정의를 호출 가능한 함수 또는 호출 가능한 목록/튜플로 제공해야 합니다. 기능. 즉, 다음 중 하나를 수행해야 합니다.

1. 보기 함수 가져오기:

urls.py를 업데이트하여 보기 함수를 명시적으로 가져오고 호출 가능 항목으로 제공합니다.

<code class="python">from myapp.views import home

urlpatterns = [
    url(r'^$', home, name='home'),
]</code>

2. 보기 모듈 가져오기 및 별칭 사용:

단일 모듈에 여러 보기가 있는 경우 전체 모듈을 가져오고 별칭을 사용하여 특정 보기에 액세스할 수 있습니다.

<code class="python">from myapp import views as myapp_views

urlpatterns = [
    url(r'^$', myapp_views.home, name='home'),
]</code>

다른 앱에서 뷰 가져오기:

사용하려는 뷰가 다른 앱에 있는 경우 앱의 뷰 모듈을 가져오고 위와 동일한 기술을 사용할 수 있습니다.

<code class="python">from another_app import views as another_app_views

urlpatterns = [
    url(r'^$', another_app_views.my_view, name='my_view'),
]</code>

참고: 이 방법으로 뷰를 가져올 때 별칭(예: another_app_views)을 사용하여 자신의 앱에 정의된 뷰와의 충돌을 피하는 것이 좋습니다.

추가 정보:

Django에서 URL 패턴을 정의하는 방법에 대한 자세한 내용은 Django URL 디스패처 문서(https://docs.djangoproject.com/en/stable/topics/http)를 참조하세요. /urls/

위 내용은 Django URL에서 \"TypeError: view는 호출 가능 또는 목록/튜플이어야 합니다\"를 수정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.