"TypeError: строковые индексы должны быть целыми числами" при использовании 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 ответа
Решение
Вы, вероятно, возвращаете неправильную вещь из формы clean()
метод - вы должны вернуть полный self.cleaned_data
толковый словарь.
По-видимому cleaned_data
дает вам строку, а не словарь.
Поскольку строка может быть проиндексирована только по номерам, она выдаст вам эту ошибку.
Попробуйте напечатать значение, чтобы увидеть, что происходит.