django - .save()函数出错

时间:2012-08-10 11:46:22

标签: python django

class Member(models.Model):# member db table
    userID      = models.CharField(max_length=80,primary_key=True) #user id 
    password    = models.CharField(max_length=32)# password
    nickname    = models.CharField(max_length=100)# user nickname
    penalty     = models.PositiveSmallIntegerField(max_length=10,default=0,null=True)
    participation=models.ForeignKey('Room',default=None,blank=True,null=True)

def __unicode__(self):
        return self.userID

def doJoin(request):
    if request.is_ajax() and request.method == 'POST':
        # check validation
        userID = request.POST['userID']
        userNickname = request.POST['nickname']
        if (checkID(userID) == False) and (checkNickname(userNickname) == False) :
            #save to the database
            newUser = Member()
            newUser.userID = userID
            newUser.nickname = userNickname
            newUser.password = request.POST['password']
            print newUser.userID , newUser.nickname , newUser.password , newUser.penalty , newUser.participation
            newUser.save() #<------------error line!!!!

            return HttpResponse('true')
        else:
            return HttpResponse('false')
    else:
        HttpResponse('false')

约8行

在功能doJoin中:

newUser.save() # <--- error... so sad...

我该怎么办?请帮帮我。

这个来源有什么问题?

1 个答案:

答案 0 :(得分:3)

您是否关闭了调试功能?如果你得到500并且你打开了调试,那么你将得到一个例外的堆栈跟踪。

checkID()checkNickname()在做什么?如果那些正在执行某种验证,那么您应该在表单类而不是视图中执行此操作。我也不会直接从request.POST中提取值来填充模型。我强烈建议从表单的cleaned_data字典中检索这些值。