注册表格未在Django中提交

注册表格未在Django中提交,django,django-models,django-forms,django-users,Django,Django Models,Django Forms,Django Users,我正在django中使用一个带有覆盖save方法的表单进行注册。我没有任何错误,但没有提交表格。以下是我的代码: 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("Me

我正在django中使用一个带有覆盖save方法的表单进行注册。我没有任何错误,但没有提交表格。以下是我的代码: 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
模板文件(register.html):


{%csrf_令牌%}
{{form.as_p}}
提交表单后,它不会再次显示除表单之外的任何内容。在db中没有插入新记录,我也从管理面板检查了它


我想知道什么是问题,因为每件事似乎都很好。有什么好方法来调试这个问题吗?一些事情,比如pprint,但是在这种情况下,在哪里调试以及如何调试?

让我大胆猜测一下

form.save

我很紧张!证明我是对的!!!(或部分正确)

无论我是对是错,我通常使用Python的
回溯
模块。它的使用非常简单


让我大胆猜测一下

form.save

我很紧张!证明我是对的!!!(或部分正确)

无论我是对是错,我通常使用Python的
回溯
模块。它的使用非常简单


django的一个最好的特性是它的模块化,有许多预构建的django模块处理注册。其中最常用的是django注册;另一个模块是Pinax,它集成了许多常用的元素,包括注册。@LieRyan感谢您的建议,注册将有所不同。在我看来,从我目前看到的情况来看,您当前的注册流程似乎没有什么特别独特的地方。即使您以后要添加一个独特的流,使用现有模块和扩展其功能通常也会更容易。@LieRyan是的,我是对的,用户注册的基本内容是如果可用的话,我应该查看一下,我想知道,在我的系统中,什么东西更容易集成,并且在代码、Pinax或django注册方面更出色?@CppLearner是的,我认为你是对的,对于这样的小任务,需要修改自己的代码,而不是加入其他东西,我尝试了django注册应用程序,但它没有那么灵活,对于我自己的代码,我能够在我自己的代码中完成这些事情,而不受调用某些父方法e.t.c的限制。django最好的特性之一是它的模块化,有许多预构建的django模块处理注册。其中最常用的是django注册;另一个模块是Pinax,它集成了许多常用的元素,包括注册。@LieRyan感谢您的建议,注册将有所不同。在我看来,从我目前看到的情况来看,您当前的注册流程似乎没有什么特别独特的地方。即使您以后要添加一个独特的流,使用现有模块和扩展其功能通常也会更容易。@LieRyan是的,我是对的,用户注册的基本内容是如果可用的话,我应该查看一下,我想知道,在我的系统中,什么东西更容易集成,并且在代码、Pinax或django注册方面更出色?@CppLearner是的,我认为你是对的,对于这样的小任务,需要修改自己的代码,而不是加入其他东西,我尝试了django注册应用程序,但它没有那么灵活,而且在我自己的代码中,我能够在我自己的代码中完成这些事情,而不受调用某些父方法e.t.c的限制。
form.save()