0

I have a library application with the following file structure

--|
  |
  |-- members--|
               |--views.py
               |--subviews--|
                            |
                            |--member_subviews.py
  |-- loans----|
               |--views.py
               |--subviews--|
                            |
                            |--loan_subviews.py
  |-- library--|
               |
               |--urls.py

In loan_subviews.py, there is a view method as so:

def generate_loan_view(request, member, loan):
    #Method body

However, in urls.py when I do something like the following,

url(r'^library/generate_invoice/(?P<pk>(\d+))/(?P<loan>(\d+))/'
    , members.subviews.member_subviews.generate_loan_view
    , name='library_generate_invoice'),   

it throws a NameError: name 'generate_loan_view' is not defined error. How can I fix so that the URLConf file can see my view method?

4

3 回答 3

0

文件的第一行应该是:

from . import views

然后替换行

members.subviews.member_subviews.generate_loan_view

views.generate_loan_view
于 2016-06-21T05:05:08.470 回答
0

我假设您没有导入任何视图,因为您没有在 urls.py 示例中显示,您可以导入所有视图文件并像这样使用它们:

from library.members import views as members_views
from library.members.subviews import member_subviews as member_subviews
from library.loans import views as loans_views
from library.loans.subviews import loan_subviews as loan_subviews

patterns = [
    url(r'^library/generate_invoice/(?P<pk>(\d+))/(?P<loan>(\d+))/',
        members_subviews.generate_loan_view,
        name='library_generate_invoice'),
]
于 2016-06-21T05:26:38.430 回答
0

确保每个文件夹都有__init__.py文件。在这种情况下,子视图。

于 2016-06-21T05:29:07.913 回答