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

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 に答える
0

ファイルの最初の行は次のとおりです。

from . import views

次に行を置き換えます

members.subviews.member_subviews.generate_loan_view

views.generate_loan_view
于 2016-06-21T05:05:08.470 に答える