您的位置:

解决方案:django ViewDoesNotExist("Could not import '%s'. Parent module %s does not exist."% (lookup_view, mod_name))

  发布时间:2023-02-25 15:52:29
报错的原因ViewDoesNotExist是Django内置的异常,表示找不到指定的视图函数或类视图。如果视图函数或类视图的名称不正确,Django也会抛出ViewDoesNotExist异常。下面是一个示例,演示了如何使用Django的ViewDoesNotExist异常:from django.http import HttpResponsefrom django.core.exceptions import ViewDoesNotExistdef my_view: return HttpResponse("Hello, World!")def view_not_found: try: # 尝试加载不存在的视图函数 return view_that_does_not_exist except ViewDoesNotExist: # 如果找不到视图函数,就返回404响应 return HttpResponse在上面的例子中,我们定义了my_view和view_not_found两个视图函数。访问/view-not-found/路径会返回"View not found"的响应,并带有404状态码。

报错的原因

ViewDoesNotExist是Django内置的异常,表示找不到指定的视图函数或类视图。

当Django尝试加载视图函数或类视图时,如果找不到指定的视图,就会抛出ViewDoesNotExist


ViewDoesNotExist("Could not import '%s'. Parent module %s does not exist."% (lookup_view, mod_name))

上述错误消息表明,Django找不到指定的视图函数或类视图,可能是因为父模块不存在。

要解决ViewDoesNotExist("Could not import '%s'. Parent module %s does not exist."% (lookup_view, mod_name)),你需要确保视图函数或类视图的模块已正确导入。

例如,如果你在应用的views.py文件中定义了视图函数my_view,你需要在你的URLconf中正确指定视图函数的路径:


# 正确的视图函数路径
path('my-view/', views.my_

# 错误的视图函数路径
path('my-view/', my_view)

在这个例子中,如果你使用错误的视图函数路径,Django就会抛出ViewDoesNotExist("Could not import '%s'. Parent module %s does not exist."% (lookup_view, mod_name))异常。

另外,你还需要确保在URLconf中指定的视图函数或类视图在代码中已正确定义。如果视图函数或类视图的名称不正确,Django也会抛出ViewDoesNotExist("Could not import '%s'. Parent module %s does not exist."% (lookup_view, mod_name))异常。

希望这些信息对你有帮助。

如何解决

要解决ViewDoesNotExist("Could not import '%s'. Parent module %s does not exist."% (lookup_view, mod_name)),你需要确保视图函数或类视图的模块已正确导入,并在URLconf中正确指定视图函数的路径。

例如,如果你在应用的views.py文件中定义了视图函数my_view,你需要在你的URLconf中正确指定视图函数的路径:


# 正确的视图函数路径
path('my-view/', views.my_view, name='my_view')

此外,你还需要确保在URLconf中指定的视图函数或类视图在代码中已正确定义。如果视图函数或类视图的名称不正确,Django也会抛出ViewDoesNotExist("Could not import '%s'. Parent module %s does not exist."% (lookup_view, mod_name))异常。

下面是一个示例,演示了如何使用Django的ViewDoesNotExist异常:


from django.http import HttpResponse
from django.core.exceptions import ViewDoesNotExist

def my_view(request):
    return HttpResponse("Hello, World!")

def view_not_found(request):
    try:
        # 尝试加载不存在的视图函数
        return view_that_does_not_exist(request)
    except ViewDoesNotExist:
        # 如果找不到视图函数,就返回404响应
        return HttpResponse("View not found", status=404)

在上面的例子中,我们定义了my_view和view_not_found两个视图函数。my_view函数直接返回一个"Hello, World!"的响应。


from django.http import HttpResponse
from django.core.exceptions import ViewDoesNotExist

def my_view(request):
    return HttpResponse("Hello, World!")

def view_not_found(request):
    try:
        # 尝试加载不存在的视图函数
        return view_that_does_not_exist(request)
    except ViewDoesNotExist:
        # 如果找不到视图函数,就返回404响应
        return HttpResponse("View not found", status=404)

希望这些信息对你有帮助。

使用例子

有,下面是一个例子,演示了如何使用Django的ViewDoesNotExist异常:

假设你有如下的URLconf:


from django.urls import path

urlpatterns = [
    path('my-view/', 'app.views.my_view', name='my_view'),
    path('view-not-found/', 'app.views.view_not_found', name='view_not_found'),
]

然后,你需要在app的views.py文件中定义视图函数:


from django.http import HttpResponse
from django.core.exceptions import ViewDoesNotExist

def my_view(request):
    return HttpResponse("Hello, World!")

def view_not_found(request):
    try:
        # 尝试加载不存在的视图函数
        return view_that_does_not_exist(request)
    except ViewDoesNotExist:
        # 如果找不到视图函数,就返回404响应
        return HttpResponse("View not found", status=404)

当你启动Django开发服务器后,访问/my-view/路径会返回"Hello, World!"的响应。访问/view-not-found/路径会返回"View not found"的响应,并带有404状态码。

希望这个例子能帮到你。