電子メール アドレスはユーザー モデルに属しているため、プロファイルを使用してユーザーが電子メールを更新できるようにする必要はありません。フィールドとして電子メールのみを持つユーザー モデルからモデル フォームを作成し、そのフォームをビューに提供して処理します。何かのようなもの:
class UserInfoForm(forms.ModelForm):
email = forms.EmailField(required=True)
class Meta:
model = User
fields = ('email',)
def my_view(request):
if request.POST:
user_form = UserInfoForm(request.POST, instance=request.user)
if user_form.is_valid():
user_form.save()
return HttpResponseRedirect(reverse('form_success_screen'))
else:
user_form = UserInfoForm()
return render_to_response('my-template.html', {'user_form': user_form}, context_instance=RequestContext(request))
フォームが成功した場合、HttpResponseRedirect を返して、ユーザーを別のページに送ることに注意してください。この場合、urls ファイルから名前付きの URL を検索しています。