处理Django UserProfile表单时出错。

时间:2011-11-10 09:48:32

标签: django

这是我对用户注册的看法:

def user_reg(request):
    UserReg = modelformset_factory(UserProfile)

    if request.method == 'POST':
        formset = UserReg(request.POST)
        if formset.is_valid():
            formset.save()
            return HttpResponseRedirect('/thanks/')
    else:
        formset = UserReg()
    return render_to_response("regform.html",{"formset":formset,})

这是我的models.py

from django.db import models
from django.contrib.auth.models import User


class UserProfile(models.Model):
    user = models.ForeignKey(User, unique=True)
    name = models.CharField(max_length = 100)
    reg_no = models.TextField(unique=True)
    password = models.CharField(max_length=128)

我得到的错误是:

Exception Type: DatabaseError at /register/
Exception Value: column auth_userprofile.name does not exist
LINE 1: ..._userprofile"."id", "auth_userprofile"."user_id", "auth_user...

我在这里有两个问题: 显然,我想知道为什么我收到错误以及如何调试。 2.这是正确的方法,还是应该在forms.py中定义它然后导入它?我的意思是模型formset。 django文档显示这种方式可以完成。

1 个答案:

答案 0 :(得分:0)

错误是数据库错误,您需要将“name”列添加到表“auth_userprofile”中。我强烈建议您查看“South”以了解所有数据库架构迁移需求。