ユーザーのプロファイルにアクセスするときにどのアプリケーションを非表示にするかを選択するプライバシー フォームがあります。フォームにはいくつかのチェックボックスが含まれており、ユーザーは非表示にしたいものをチェックします。私が欲しいのは、ユーザーがこのフォームにアクセスしたときに、フォームが存在する場合、既に保存されているプライバシーフォームのインスタンスになることです。つまり、すでにアプリケーション 1 を非表示にチェックしている場合、フォームに再度アクセスすると、対応するチェック ボックスがチェックされます。
私のコード:
def save_privacy(request):
if request.method == 'POST':
try:
u = Privacy.objects.get(user_privacy = request.user)
form = PrivacyForm(request.POST, instance=u )
except ObjectDoesNotExist:
form = PrivacyForm(request.POST, request.FILES)
if form.is_valid():
new_obj = form.save(commit=False)
new_obj.user_privacy = request.user
new_obj.save()
return HttpResponseRedirect('/accounts/private_profile/')
else:
form = PrivacyForm()
return render_to_response('privacy/set_privacy.html', {
'form': form,
},
context_instance=RequestContext(request))
そして私のフォーム:
class PrivacyForm(ModelForm):
class Meta:
model = Privacy
fields = ['restrict_cv','restrict_blog','friends_of_friends','restrict_followers','restrict_following']