Fka
Fka

Reputation: 6234

python 'module' object is not callable

I'm trying to add form to my django view. The problem is, I cannot declare class. That is the problem:

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))

And finally I recieve error:

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

I was looking for solution in Google, but every response was about filenames. It does not work for me :/ Have you got any idea, why AddSubjectForm doesn't work?

Upvotes: 0

Views: 2627

Answers (1)

Henrik Andersson
Henrik Andersson

Reputation: 47172

Your import statement is wrong as per my comment.

What you've written is

from AddSubject.AddForm import AddSubjectForm

change it to

from AddFrom import AddSubjectForm

What using from does is traverse the ALL modules so that it can import from a relative module. But since AddSubject isn't a package within AddSubject it loads from a module instead and treats the package as a module.

A good read is found here: Simple Statements#import

Upvotes: 3

Related Questions