> 백엔드 개발 > 파이썬 튜토리얼 > Django의 TypeError를 해결하는 방법: 뷰는 URL 패턴에서 호출 가능해야 합니까?

Django의 TypeError를 해결하는 방법: 뷰는 URL 패턴에서 호출 가능해야 합니까?

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

How to Resolve Django's TypeError: view must be a callable in URL Patterns?

Django URL 패턴: TypeError 이해: 뷰는 호출 가능해야 합니다

Django 버전 1.10 이상의 경우 다음과 같은 경우 특정 오류 메시지가 발생할 수 있습니다. URL 패턴 정의: TypeError: 뷰는 호출 가능 항목이거나 include()의 경우 목록/튜플이어야 합니다. 이 오류는 이전 Django 버전에서 흔히 사용되는 방식인 URL 패턴 내에서 뷰를 문자열로 지정하려고 할 때 발생합니다.

해결책:

이 오류를 해결하려면 다음을 수행하세요. 실제 뷰 호출을 포함하도록 urls.py를 업데이트하는 데 필요합니다. 이를 위해서는 urls.py 파일 내에서 보기를 가져와야 합니다. 예:

from django.conf.urls import include, url

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'),
]
로그인 후 복사

대체 솔루션:

뷰 수가 많은 경우 개별적으로 가져오는 것이 불편할 수 있습니다. 또 다른 접근 방식은 앱에서 뷰 모듈을 가져오는 것입니다.

from django.conf.urls import include, url

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'),
]
로그인 후 복사

myapp_views 및 auth_views와 같은 별칭을 사용하면 여러 앱에서 뷰를 가져올 때 뷰 이름 충돌을 방지할 수 있습니다.

추가 정보:

URL 디스패처 패턴에 대한 더 자세한 내용은 공식 Django URL 디스패처 문서를 참조하세요.

[Django URL 디스패처 문서](https://docs.djangoproject. com/en/stable/topics/http/urls/)

위 내용은 Django의 TypeError를 해결하는 방법: 뷰는 URL 패턴에서 호출 가능해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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