使用cleaning_data时,“TypeError:字符串索引必须是整数”

时间:2012-04-27 19:00:43

标签: python django cleaned-data

此处发生错误:

if request.method == 'POST':
        form = RegisterForm(request.POST)
        if form.is_valid():
            clean = form.cleaned_data

            username = clean['username']
            email = clean['email']
            password = clean['password']
            new_user = User.objects.create_user(username, email, password)
            new_user.save()
            new_account = Account(user=new_user, email=email)
            new_account.save()

username = clean['username']行。我已经能够在其他地方成功使用这条确切的线而没有问题。为什么现在出问题?

2 个答案:

答案 0 :(得分:4)

你可能从表单的clean()方法返回错误的东西 - 你应该返回完整的self.cleaned_data字典。

答案 1 :(得分:2)

显然cleaned_data给你一个字符串,而不是字典。

由于字符串只能用数字编制索引,所以它会给你这个错误。

尝试打印该值以查看正在发生的事情。