[英]How to write a condition use django queryset
我向用户写了一个 if else 语句,但它不起作用。 我使用Post.objects.get(sno = delpk)
获取数据表单数据库。 然后我写一个条件request.user.username == Post.author
def postdelapi(request):
if request.method == 'POST':
delpk = request.POST['delpk']
deletepost = Post.objects.get(sno = delpk)
print(Post.author)
if request.user.username == Post.author :
deletepost.delete()
else:
HttpResponse('eroor')
else:
pass
return redirect('home')
您需要将request.user.username
与Post
的 object 进行比较,即deletepost
。
if request.user.username == deletepost.author.username :
deletepost.delete()
Post.author
很可能是User
model (检查您的 models.py 以确认)因此应与等效的User
model 进行比较,即request.user
而不是request.user.username
:
if request.user == Post.author :
deletepost.delete()
在用户更改用户名和/或具有重复用户名的情况下,最好比较User
实例而不是用户名。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.