나는 django-allauth를 사용하여 사용자가 자신의 계정을 삭제하거나 비활성화 할 수있는 최선의 방법을 알아 내려고하고 is_active 필드를 False로 설정해야한다고 가정하고 있습니다.사용자가 장고 allauth에서 계정을 삭제할 수있게 하시겠습니까?
내 솔루션 아래에 몇 가지 문제가 있습니다 : 1) 렌더링 된 확인란 필드 is_active는 "이 사용자를 활성으로 처리해야하는지 여부를 지정합니다. 계정을 삭제하지 말고 선택 취소하십시오."라는 텍스트를 표시합니다. 이 텍스트를 "이 계정을 삭제 하시겠습니까?"로 변경하려면 어떻게해야합니까?
업데이트 : 상자 선택을 취소하는 동안 is_active를 True로 설정하면 False로 설정되므로 양식을 확인하는 데 다른 필드를 사용해야 할 수도 있습니다.
2) 제출시 사용자를 어떻게 로그 아웃합니까?
forms.py :
class DeactivateUserForm(forms.ModelForm):
class Meta:
model = User
fields = ['is_active']
views.py :
login_required(login_url='/accounts/login/')
def deactivate_user_view(request):
pk = request.user.id
user = User.objects.get(pk=pk)
user_form = DeactivateUserForm(instance=user)
if request.user.is_authenticated() and request.user.id == user.id:
if request.method == "POST":
user_form = DeactivateUserForm(request.POST, instance=user)
if user_form.is_valid():
deactivate_user = user_form.save(commit=False)
user.is_active = False
deactivate_user.save()
return render(request, "account/userprofile_del.html", {
"user_form": user_form,
})
else:
raise PermissionDenied
userprofile_del.html :
<h2>Delete your account</h2>
<hr>
<form action="." method="POST" class="padding">{% csrf_token %}
{{ user_form.as_p}}
<button class="btn btn-primary" type="submit" name="action">{% trans "Confirm" %}</button>
</form>
일부 관할지 (즉, 적어도 모든 EU) 사용자는 계정을 비활성화하는 것뿐만 아니라 실제 * 삭제를 요청할 권리가 있습니다. 따라서 서비스에 따라 계정이 비활성화 또는 삭제되는지 여부를 명확하게 명시하고 실제 삭제를 수행 할 수있는 옵션을 제공하는 것이 좋습니다. – Bakuriu
가져와 주셔서 감사합니다. 나는 User에 대한 삭제 방법에 대한 연구를해야 할 것이다. – bayman