【发布时间】:2021-02-07 13:59:49
【问题描述】:
我正在尝试允许用户删除他们自己的帐户,但遇到了错误:
/account/delete/testuser1 处的 AttributeError:“str”对象没有属性“field”
用户也没有被删除。知道为什么吗?我正在尝试使删除按钮位于帐户页面中,当我按下删除时,用户被删除并重定向回主页 如果您能分享一下我如何创建一个停用帐户的功能,那就太好了。它只是设置 is_active = False 吗?
html
<form action="{% url 'account:delete_account' username=request.user.username %}" method="GET">{% csrf_token %}
<a class="btn btn-danger btn-sm deleteaccount ml-3" href="{% url 'account:delete_account' username=request.user.username %}">Delete Account</a>
</form>
views.py
def delete_user(request, username):
context = {}
if request.method == 'DELETE':
try:
user = Account.objects.get(username=username)
user.delete()
context['msg'] = 'Bye Bye'
except Exception as e:
context['msg'] = 'Something went wrong!'
else:
context['msg'] = 'Request method should be "DELETE"!'
return redirect(request, 'HomeFeed/snippets/home.html', context)
urls.py
path('delete/<username>', delete_user, name='delete_account'),
models.py
class Account(AbstractBaseUser):
email = models.EmailField(verbose_name="email", max_length=60, unique=True)
username = models.CharField(max_length=30, unique=True)
【问题讨论】:
标签: python django django-models django-views django-templates