python'module'对象不可调用

时间:2013-06-10 07:50:25

标签: python django

我正在尝试将表单添加到我的django视图中。问题是,我不能宣布上课。这就是问题:

enter image description here

Addform.py

from django import forms

class AddSubjectForm(forms.Form):
def __init__(self):
    pass

name = forms.CharField(max_length=200)

Views.py

from django.http import HttpResponse
from django.template import Context, loader
from AddSubject.AddForm import AddSubjectForm

def index(request):
    template = loader.get_template('AddSubject/index.html')

    if request.method == 'POST':
        form = AddSubjectForm()
        context = Context({
                       'form': form,
                       })
    else:
        form = AddSubjectForm()
            context = Context({        
                       'form': form,
                       })

    return HttpResponse(template.render(context))

最后我收到了错误:

Environment:


Request Method: GET
Request URL: http://127.0.0.1:8000/AddSubject/

Django Version: 1.5.1
Python Version: 2.7.5
Installed Applications:
('django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'AddSubject')
Installed Middleware:
('django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware')


Traceback:
File "C:\Python27\lib\site-packages\django\core\handlers\base.py" in get_response
115.                         response = callback(request, *callback_args, **callback_kwargs)
File "blablabla\AddSubject\views.py" in index
14.         form = AddSubjectForm()

Exception Type: TypeError at /AddSubject/
Exception Value: 'module' object is not callable

我一直在寻找Google的解决方案,但每个回复都是关于文件名的。它对我不起作用:/你有任何想法,为什么AddSubjectForm不起作用?

1 个答案:

答案 0 :(得分:3)

根据我的评论,您的导入声明有误。

你写的是

from AddSubject.AddForm import AddSubjectForm

将其更改为

from AddFrom import AddSubjectForm

使用from做的是遍历所有模块,以便它可以从相对模块导入。但由于AddSubject不是AddSubject中的包,而是从模块加载并将包视为模块。

这里有一个很好的阅读:Simple Statements#import