Haf*_*fiz 1 django django-models django-forms django-users
我正在使用具有覆盖保存方法的表单在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']
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
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>
Run Code Online (Sandbox Code Playgroud)
提交表格后,除了表格之外不再显示任何内容.在db中没有插入新记录,我也从管理面板中检查了它.
我想知道可能是什么问题,因为每件事情似乎都很好.是否有一些调试问题的好方法?有点像pprint的东西,但在这种情况下在哪里以及如何调试?
让我猜一想
form.save
Run Code Online (Sandbox Code Playgroud)
至
form.save()
Run Code Online (Sandbox Code Playgroud)
我很紧张!证明我的权利!(或部分右)
无论我是对还是错,我通常使用Python的traceback模块.它使用起来非常简单.
http://docs.python.org/library/traceback.html
| 归档时间: |
|
| 查看次数: |
909 次 |
| 最近记录: |