Регистрационная форма не подается в Джанго

Я делаю регистрацию в Django, используя форму с переопределением метода сохранения. У меня нет ошибок, но я не отправляю форму. Ниже приведен мой код: Models.py:

from django.db import models
from django.contrib.auth.models import User 
class UserProfile(models.Model):
    user=models.OneToOneField(User) 
    meta_keywords=models.CharField("Meta Keywords",max_length=255,
            help_text="Comma delimited set of keywords of meta tag")
    meta_description=models.CharField("Meta Description",max_length=255,
            help_text='Content for description meta tag')

    def __unicode__(self):
        return "User Profile for: "+self.username

    class Meta:
        ordering=['-id']

forms.py

from django.contrib.auth.forms import UserCreationForm
from django import forms
from django.contrib.auth.models import User
from accounts.models import UserProfile
from pprint import pprint


class RegisterationForm(UserCreationForm):
    email = forms.EmailField(label = "Email")
    fullname = forms.CharField(label = "Full name")

    class Meta:
        model = User
        fields = ("username", "fullname", "email", )

    def save(self, commit=True):
        user = super(RegisterationForm, self).save(commit=False)
        first_name, last_name = self.cleaned_data["fullname"].split()
        user.first_name = first_name
        user.last_name = last_name
        user.email = self.cleaned_data["email"]
        if commit:
            user.save()
        return user

views.py

from django.contrib.auth.forms import UserCreationForm
from django.template import RequestContext
from django.shortcuts import render_to_response,get_object_or_404
from django.core import urlresolvers
from django.http import HttpResponseRedirect
from django.contrib.auth.decorators import login_required
from accounts.forms import RegisterationForm
#from accounts.forms import UserProfile

def register(request,template_name="account/register.html"):
    if request.method=='POST':
        postdata=request.POST.copy()
        form=RegisterationForm(postdata)
        if form.is_valid():
            form.save
            un=postdata.get('username','')
            pw=postdata.get('password','')
            from django.contrib.auth import login,authenticate
            new_user=authenticate(username=un,password=pw)
            if new_user and new_user.is_active:
                login(request,new_user)
                url=urlresolvers.reverse('dashboard')
                return HttpResponseRedirect(url)            
    else:
        form=RegisterationForm()
    page_title="User Registration"
    return render_to_response(template_name,locals(),context_instance=RequestContext(request))


@login_required
def dashboard(request):
    pass

@login_required
def settings(request):
    pass

TemplateFile(register.html):

    <div class="register_form">
    <form method="post" action="." class="cart"> 
        {% csrf_token %}
    {{form.as_p}}
    <input type="submit" value="Register" name="submit" alt="Register" />
    </form>
</div>

После отправки формы она ничего не показывает, кроме формы снова. В дб новые записи не вставляются, я тоже проверял это из админки.

Мне интересно, в чем может быть проблема, потому что все кажется хорошим. Есть ли хороший способ отладки проблемы? что-то вроде pprint что-то, но где и как отлаживать в этой ситуации?

1 ответ

Решение

Позвольте мне сделать дикую догадку

form.save

в

form.save()

Я нервничаю! Докажи, что я прав!!! (или частично верно)

Прав ли я или нет, я обычно использую Python traceback модуль. Это действительно просто в использовании.

http://docs.python.org/library/traceback.html

Другие вопросы по тегам