私が基本的に達成したいのは、ユーザーが自分のプロファイルを編集すると、空白のフィールドによってすべてが上書きされることです。
例えば:
名が追加され、ユーザーがそれを変更したくない場合、フォーム全体を再入力する必要はありません。変更する必要があるフィールドは名フィールドのみです。フォームが送信されると、他の空白のフィールドによってモデルフィールドが次のようになります。空になります。
これが私が試したものです:
def editUserprofile(request):
rc = context_instance=RequestContext(request)
u = request.user
if request.method=='POST':
form = UserProfileEdit(request.POST, request.FILES)
if form.is_valid():
u = UserProfile.objects.get(user=u)
if 'avatar' in request.FILES :
u.avatar = request.FILES['avatar']
if 'first_name' in request.POST:
u.first_name = form.cleaned_data['first_name']
if 'last_name' in request.POST:
u.last_name = form.cleaned_data['last_name']
if 'email' in request.POST:
u.email = form.cleaned_data['email']
if 'country' in request.POST:
u.country = form.cleaned_data['country']
if 'date_of_birth' in request.POST:
u.date_of_birth = form.cleaned_data['date_of_birth']
u.save()
return HttpResponseRedirect(reverse('photocomp.apps.users.views.editUserprofile'))
else:
u = UserProfile.objects.get(user=u)
form = UserProfileEdit()
return render_to_response('users/editprofile.html',
{'form':form, 'u':u},
rc)
モデルのコンテンツを編集せずに、どういうわけか空のフィールドを渡すことはできますか?
それがあなたをそれほど混乱させないことを願っています!
詳細が必要な場合は、教えてください:)事前に感謝します!