【发布时间】:2016-08-29 03:30:08
【问题描述】:
所以我的视图文件变得很大,我决定将其拆分为更小的部分 关注这个answer
我创建了一个views文件夹,在这个文件夹下创建了几个view...py文件
以前存在的东西在拆分后仍然有效,但现在当我尝试创建新的视图文件时,我在 url 文件中遇到问题
这是我的 _init_.py 文件,位于我的视图文件夹中
from views import *
from viewscategory import *
from viewssubcategory import *
from viewsitemgroup import *
from viewsmaterial import *
from viewsbomversion import *
from viewsbom import *
from viewsapprovedmanufacture import *
这是我的 url 文件相关部分
from django.conf.urls import url, include,patterns
import item.views
from views import *
urlpatterns = patterns('item.views',
url(r'^approvedmanufacture/new/(?P<pk>\d+)/(?P<uri>\S+)/$', item.views.approvedmanufacture_new, name="approvedmanufacture_new"),
url(r'^approvedmanufacture/edit/(?P<pk>\d+)/(?P<uri>\S+)/$', item.views.approvedmanufacture_edit, name="approvedmanufacture_edit"),
url(r'^approvedmanufacture/delete/(?P<pk>\d+)/(?P<uri>\S+)/$', item.views.approvedmanufacture_delete, name="approvedmanufacture_delete"),
url(r'^approvedmanufacture/approvedmanufacture_details/(?P<pk>\d+)$', item.views.approvedmanufacture_details, name="approvedmanufacture_details"),
)
这是来自终端的错误
File "C:\Users\I812624\dev\mrp\src\item\urls.py", line 58, in <module>
url(r'^approvedmanufacture/new/(?P<pk>\d+)/(?P<uri>\S+)/$', item.views.appro
vedmanufacture_new, name="approvedmanufacture_new"),
AttributeError: 'module' object has no attribute 'approvedmanufacture_new'
[03/May/2016 17:51:10]"GET /item/material/material_bomversion_details/3 HTTP/1.1
" 500 59
即使我在 ulr.py 中修改我的行以包含完整路径,我仍然会遇到同样的错误
url(r'^approvedmanufacture/new/(?P<pk>\d+)/(?P<uri>\S+)/$', item.views.viewsapprovedmanufacture.approvedmanufacture_new, name="approvedmanufacture_new"),
或
url(r'^approvedmanufacture/new/(?P<pk>\d+)/(?P<uri>\S+)/$', item.viewsapprovedmanufacture.approvedmanufacture_new, name="approvedmanufacture_new"),
在同一个文件中有趣的事情我有 2 个视图:
-def material_bomversion_details 在我分手之前我有这个
还有一个新的 -def material_am_details
所以当我在 shell 中执行时 from item.views import material_bomversion_details 它运行正常, 但是当我从 item.views import material_am_details 执行时。
我收到 ImportError: cannot import name material_am_details
这超出了我的理解 看起来 Django 框架中有某种缓存可以保存拆分之前的所有内容,并且没有添加任何新内容。将所有内容移回一个视图文件后,一切正常。
【问题讨论】:
-
您是否创建了
views文件夹?你的问题是view。 -
我创建了views文件夹。
-
在shell中,可以
from item.views import *还是报错? -
不,我没有收到错误消息。
-
它实际上是命名为
__init__.py(2x 双下划线),还是像您的问题中那样命名为_init_.py?