我正在尝试将表单添加到我的django视图中。问题是,我不能宣布上课。这就是问题:
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不起作用?
答案 0 :(得分:3)
根据我的评论,您的导入声明有误。
你写的是
from AddSubject.AddForm import AddSubjectForm
将其更改为
from AddFrom import AddSubjectForm
使用from
做的是遍历所有模块,以便它可以从相对模块导入。但由于AddSubject
不是AddSubject
中的包,而是从模块加载并将包视为模块。
这里有一个很好的阅读:Simple Statements#import