2

エラーが発生し、頭がおかしくなりました。

モデルに関連付けられたフォームを作成しました。毎回、form.is_valid()関数がviews.pyで実行されると、djangoは次のエラーを表示します。

Exception Type: AttributeError

Exception Value: 'unicode' object has no attribute 'get'

models.py

from django.db import models

class Register(models.Model):
    email = models.CharField(max_lenght=100)

forms.py

from django.form import ModelForm
from models.models import Register

class RegisterForm(ModelForm):
    class Meta:
        model = Register

views.py

from django.shortcuts import render_to_response
from models.models import Register
from register.forms import RegisterForm

def register(request):
    if 'user_email' in request.POST:
        form = RegisterForm(request.POST['user_email'])
        if form.is_valid():
            form.save()
            retunr render_to_response('registered.html')

    return render_To_response('main.html') 

PS_1:フォームの値を別のページに表示して、電子メールだけが含まれているかどうかを確認します。問題はありません。電子メールだけが含まれています。

PS_2:request.POSTには「user_email」が含まれています。

どうか、私がそれを解決するのを手伝ってくれませんか。

前もって感謝します。

4

1 に答える 1

0

この行:

form = RegisterForm(request.POST['user_email'])

間違っています。Forms には完全なマッピングを渡す必要があります。

form = RegisterForm(request.POST)

フィールド名は異なりますが、それは別の問題です (フォームをページに出力していないように見えるため)。

于 2013-02-03T08:41:22.243 に答える