无法解析作为python包的视图和模型

2024-04-20 14:12:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我对Django相当陌生,我尝试着掌握使用视图和模型的模块的诀窍。奇怪的是,网址工作得很好。在

  • 我的应用程序结构是

    templatetags/
    urls/
    views/
    models.py
    tests.py
    
  • views dir有一个__init__.py,并且动物.py,包含一个视图。在

    from myapp.models import Animal
    from django.shortcuts import render_to_response
    
    def overview(request):
        objects = Animal.objects.all()
        return render_to_response('myapp/animal_list.html', {'objects': objects})
    
  • 有一个动物.py在url/中,包含

    from myapp.views.animals import *
    urlpatterns = patterns('',
        url(r'^$', 'views.animals.overview', {}, 'myapp_animal_overview'),
    )
    

结果是: 渲染时捕获到ViewDoesNotExist:无法导入视图.动物. 命名为“动物”的模块没有错误

但它就在那里!有人能看出我哪里出错了吗?我的应用程序由大约10个模型组成,因此需要拆分。 事先非常感谢。在


Tags: 模块frompy模型import视图应用程序objects
2条回答

一般来说,您不需要导入myapp.views.animals。当regex与请求的URL匹配时,URL调度器根据需要导入所需的视图,如:https://docs.djangoproject.com/en/dev/topics/http/urls/#how-django-processes-a-request。在

一般来说,我希望你网址.py看起来像:

from django.conf import settings
from django.conf.urls.defaults import patterns, include, url # for example ...

urlpatterns = patterns('',
    url(r'^$', 'views.animals.overview'),
)

你说得对,我不需要额外的进口。在

什么起作用了

    urlpatterns = patterns('',
        url(r'^$', 'myapp.views.animals.overview'),
    )

我需要指定应用程序的视图。问题解决了!在

相关问题 更多 >