Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

No module named 'forms' Django

Tags:

python

django

I am trying to initiate a registration process for my website. I am using Python 3.3.5, and Django 1.6.

I receive an error saying No module named 'forms'. I am fairly new to Python/Django.

Here are my files:

Views.py:

from django.shortcuts import render_to_response
from django.http import HttpResponseRedirect
from django.contrib import auth
from django.core.context_processors import csrf
from django.contrib.auth.forms import UserCreationForm
from forms import MyRegistrationForm


def register_user(request):
    if request.method == 'POST':
        form = MyRegistrationForm(request.POST)
        if form.is_valid():
            form.save()
            return HttpResponseRedirect('/accounts/register_success')

    else:
        form = MyRegistrationForm()
    args = {}
    args.update(csrf(request))

    args['form'] = form

    return render_to_response('register1.html', args)



def register_success(request):
    return render_to_response('register_success.html')

Forms.py

from django import forms
from django.contrib.auth.models import User
from django.contrib.auth.forms import UserCreationForm


class MyRegistrationForm(UserCreationForm):
    email = forms.EmailField(required=True)

    class Meta:
        model = User
        fields = ('username', 'email', 'password1', 'password2')

    def save(self, commit=True):
        user = super(MyRegistrationForm, self).save(commit=False)
        user.email = self.cleaned_data['email']
        # user.set_password(self.cleaned_data['password1'])

        if commit:
            user.save()

        return user

the forms.py is located in the same folder as views.py. I tried from django.forms import MyRegistrationForm but then the error cannot import name MyRegistrationForm arises.

like image 246
edwards17 Avatar asked Mar 18 '14 23:03

edwards17


1 Answers

If you didn't change the default location of views.py, then it's likely to be in your application folder. Try something like from myapp.forms import MyRegistrationForm where myapp is the name of your application

like image 154
antimatter Avatar answered Oct 13 '22 16:10

antimatter