操作错误1054,“字段列表”中的“xx”列未知

2024-10-01 13:39:39 发布

您现在位置:Python中文网/ 问答频道 /正文

创建一个注册表单供用户在注册后填写,但是在测试期间,从我的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'")

Tags: djangoinpydevselfformreturnmodels