0
我試圖編輯用戶使用我用來創建用戶的表單, 我不知道爲什麼我收到錯誤具有該用戶名的用戶已經存在。在Django中編輯用戶
這是我的觀點:
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 }} <i style="color: orange">{{ f.errors|striptags }}</i>
</div>
</div>
{% endfor %}
<div class="controls">
<button class="btn btn-success">
Continue
</button>
</div>
</fieldset>
</form>
任何人都告訴我,我在那裏搞亂這裏? 任何幫助將不勝感激。
它給了我一個無值的密碼字段,它發出一個錯誤onsend「KeyError at/customer/registration_edit /'password'」onsend /usr/local/lib/python2.7/dist-packages/django/contrib /auth/forms.py in clean_password,第122行 – 2013-05-10 09:33:46
您不希望在此表單上設置密碼,http://stackoverflow.com/a/10881992/188955 – JamesO 2013-05-10 09:52:28