创建一个注册表单供用户在注册后填写,但是在测试期间,从我的register函数中发布的数据视图.py,生成操作错误,字段列表中的未知列“realname”。以我的名义模型.py,和表单.py. 同时,我已经将它与django同步,并完成了与south的迁移。需要帮助排除原因!在
模型.py:
from django.db import models
from django.contrib.auth.models import User
class ProfileUser(models.Model):
user = models.OneToOneField(User)
realname = models.CharField(null=True, max_length=254, blank=True)
birthday = models.DateField(null=True,blank=True)
city = models.CharField(max_length=50,blank=True)
state = models.CharField(max_length=50,blank=True)
image = models.ImageField(upload_to='user_images/', blank=True)
#admin level and additional infomation
is_staff = models.BooleanField(default=False)
is_active = models.BooleanField(default=True)
#Override the _unicode_() method to return out something meaningful
def __unicode__(self):
return '%s %s %s %s %s' % (self.realname, self.birthday, self.city, self.state, self.image)
class ProfileStatsUser(models.Model):
profileuser = models.OneToOneField(ProfileUser)
user_title = models.CharField(max_length=254, verbose_name="Influencer Level", blank=True)
user_points = models.IntegerField(null=False, verbose_name="Style Points", blank=True)
def _unicode_(self):
return '%s %s' % (self.user_title, self.user_points)
表单.py:
^{pr2}$视图.py:
#coding=utf-8
from django.shortcuts import render
from django.core.urlresolvers import reverse
from django.http import HttpResponse, HttpResponseRedirect
from django.shortcuts import render_to_response
from django.template import RequestContext
from django.contrib import messages
from django.contrib.auth.models import User
from django.contrib.auth import authenticate, login as auth_login ,logout as auth_logout
from django.utils.translation import ugettext_lazy as _
from forms import LoginForm, SignupForm, RegisterForm, ProfileForm
from models import ProfileUser, ProfileStatsUser
from PIL import Image
###### Login for users ###########
def login(request):
template_var={}
form = LoginForm()
if request.method == 'POST':
form = LoginForm(request.POST.copy())
if form.is_valid():
login(request,form.cleaned_data["username"],form.cleaned_data["password"])
return HttpResponseRedirect(reverse("login"))
template_var["form"]=form
return render_to_response("registration/login.html",template_var,context_instance=RequestContext(request))
def _login(request,username,password):
ret=False
user=authenticate(username=username,password=password)
if user:
if user.is_active:
auth_login(request,user)
ret=True
else:
messages.add_message(request, messages.INFO, _(u'user is not active'))
else:
messages.add_message(request, messages.INFO, _(u'user not exsist'))
return ret
###### Signup for users ###########
def signup(request):
template_var={}
form = SignupForm()
if request.method=="POST":
form=SignupForm(request.POST.copy())
if form.is_valid():
username=form.cleaned_data["username"]
email=form.cleaned_data["email"]
password=form.cleaned_data["password"]
user=User.objects.create_user(username,email,password)
user.save()
_login(request,username,password)
return HttpResponseRedirect("register")
template_var["form"]=form
return render_to_response("registration/signup.html",template_var,context_instance=RequestContext(request))
###### Registration for users ###########
def register(request):
template_var={}
form = RegisterForm()
if request.user.is_authenticated():
if request.method=="POST":
form=RegisterForm(request.POST,request.FILES)
if form.is_valid():
realname=form.cleaned_data["realname"]
birthday=form.cleaned_data["birthday"]
city = form.cleaned_data["city"]
state = form.cleaned_data["state"]
reqfile = request.FILES.get("image", False)
registeruser=ProfileUser.objects.create(user=request.user, birthday=birthday,
city=city, state=state, image=reqfile)
registeruser.save()
return HttpResponseRedirect(reverse("dashboard"))
template_var["form"]=form
return render_to_response("registration/register.html",template_var,context_instance=RequestContext(request))
###### Profile for users ###########
def dashboard(request):
template_var={}
form=ProfileForm()
if request.user.is_authenticated():
user = ProfileUser.objects.get(user=request.user)
first_name=user.first_name
last_name=user.last_name
email=user.email
username=user.username
birthday=user.birthday
city=user.city
state=user.state
#None form elements
title=user.user_title
points=user.user_points
image=user.image
template_var["title"]=title
template_var["points"]=points
template_var["image"]=image
template_var["form"]=form
template_var["is_authenticated"]= True
return render_to_response("userprofile/dashboard.html",template_var)
回溯信息:
Environment:
Request Method: POST
Request URL: http://127.0.0.1:8000/signup/register/
Django Version: 1.6.2
Python Version: 2.7.1
Installed Applications:
('django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'home',
'profiles',
'south')
Installed Middleware:
('django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware')
Traceback:
File "/Users/amechiegbe/Desktop/cm_dev/venv/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
114. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/Users/amechiegbe/Desktop/cm_dev/Indieitude/profiles/views.py" in register
73. city=city, state=state, image=reqfile)
File "/Users/amechiegbe/Desktop/cm_dev/venv/lib/python2.7/site-packages/django/db/models/manager.py" in create
157. return self.get_queryset().create(**kwargs)
File "/Users/amechiegbe/Desktop/cm_dev/venv/lib/python2.7/site-packages/django/db/models/query.py" in create
319. obj.save(force_insert=True, using=self.db)
File "/Users/amechiegbe/Desktop/cm_dev/venv/lib/python2.7/site-packages/django/db/models/base.py" in save
545. force_update=force_update, update_fields=update_fields)
File "/Users/amechiegbe/Desktop/cm_dev/venv/lib/python2.7/site-packages/django/db/models/base.py" in save_base
573. updated = self._save_table(raw, cls, force_insert, force_update, using, update_fields)
File "/Users/amechiegbe/Desktop/cm_dev/venv/lib/python2.7/site-packages/django/db/models/base.py" in _save_table
654. result = self._do_insert(cls._base_manager, using, fields, update_pk, raw)
File "/Users/amechiegbe/Desktop/cm_dev/venv/lib/python2.7/site-packages/django/db/models/base.py" in _do_insert
687. using=using, raw=raw)
File "/Users/amechiegbe/Desktop/cm_dev/venv/lib/python2.7/site-packages/django/db/models/manager.py" in _insert
232. return insert_query(self.model, objs, fields, **kwargs)
File "/Users/amechiegbe/Desktop/cm_dev/venv/lib/python2.7/site-packages/django/db/models/query.py" in insert_query
1511. return query.get_compiler(using=using).execute_sql(return_id)
File "/Users/amechiegbe/Desktop/cm_dev/venv/lib/python2.7/site-packages/django/db/models/sql/compiler.py" in execute_sql
899. cursor.execute(sql, params)
File "/Users/amechiegbe/Desktop/cm_dev/venv/lib/python2.7/site-packages/django/db/backends/util.py" in execute
69. return super(CursorDebugWrapper, self).execute(sql, params)
File "/Users/amechiegbe/Desktop/cm_dev/venv/lib/python2.7/site-packages/django/db/backends/util.py" in execute
53. return self.cursor.execute(sql, params)
File "/Users/amechiegbe/Desktop/cm_dev/venv/lib/python2.7/site-packages/django/db/utils.py" in __exit__
99. six.reraise(dj_exc_type, dj_exc_value, traceback)
File "/Users/amechiegbe/Desktop/cm_dev/venv/lib/python2.7/site-packages/django/db/backends/util.py" in execute
53. return self.cursor.execute(sql, params)
File "/Users/amechiegbe/Desktop/cm_dev/venv/lib/python2.7/site-packages/django/db/backends/mysql/base.py" in execute
124. return self.cursor.execute(query, args)
File "/Users/amechiegbe/Desktop/cm_dev/venv/lib/python2.7/site-packages/MySQLdb/cursors.py" in execute
205. self.errorhandler(self, exc, value)
File "/Users/amechiegbe/Desktop/cm_dev/venv/lib/python2.7/site-packages/MySQLdb/connections.py" in defaulterrorhandler
36. raise errorclass, errorvalue
Exception Type: OperationalError at /signup/register/
Exception Value: (1054, "Unknown column 'realname' in 'field list'")
目前没有回答
相关问题 更多 >
编程相关推荐