0

ユーザーの作成に使用したフォームを使用してユーザーを編集しようとしましたが、エラーが発生する理由がわかりません。そのユーザー名を持つユーザーは既に存在します。

これが私の見解です:

def registration_edit(request):
    """ Registration Step2:
                               The user should be authenticated to reach this step.
                               Authentication is provided by first step or user login.
    """
    if request.user.is_authenticated():
        if request.POST:
            form = RegistrationForm(request.POST or None, instance=request.user)
            if form.is_valid():
                form.save()
                return HttpResponseRedirect(reverse('reg_step_2'))
        else:
            form = RegistrationForm(instance=request.user)
        page = 'account'  
        title = 'Editing User Registration'
        context = {'title': title, 'form': form, 'page': page}
        template = 'customer/registration.djhtml'
        return render_to_response(template, context, context_instance=RequestContext(request))        
    else:
        messages.info(request, '<strong>Note</strong>: You must logged in to edit your account.')
        return HttpResponseRedirect('/')

forms.py 名と姓のフィールドを登録に含めたいので、このフォームを作成しました。

    from django import forms
    from django.contrib.auth.models import User
    from django.contrib.auth.forms import UserCreationForm

    class RegistrationForm(UserCreationForm):
        class Meta:
            model = User
            exclude = ('is_staff', 'is_active', 'is_superuser', 'last_login', 'date_joined', 'groups', 'user_permissions', 'password')

ここに私のテンプレートがあります

<form class="form-horizontal" action='.' method="POST">
    {% csrf_token %}
    <fieldset>
        <div id="legend">
            <legend class="">
                {{ title|title }}
            </legend>
        </div>
        {% for f in form %}
        <div class="control-group">
            <label class="control-label"  for="username">{{ f.label }}</label>
            <div class="controls">
                {{ f }}&nbsp;<i style="color: orange">{{ f.errors|striptags }}</i>
            </div>
        </div>
        {% endfor %}
        <div class="controls">
            <button class="btn btn-success">
                Continue
            </button>
        </div>
    </fieldset>
</form>

私がここでどこをいじっていたのか誰か教えてください。どんな助けでも大歓迎です。

4

1 に答える 1