属性错误:"帐户"对象没有属性"排除"



我构建了通知系统,并且我想在向自己的帖子添加赞时排除帖子的作者,因此在收到通知时,我面临这个问题

我的观点

def add_remove_like(request, pk):
data = {}
video = Video.objects.get(pk=pk)
if request.method == "POST":
user = request.user
if video.likes.filter(id=user.id).exists():
liked = False
video.likes.remove(user)
else:
video.likes.add(user)
instance = video.author
content_type = ContentType.objects.get_for_model(instance)
try:
notify = Notify.objects.create(from_user=request.user.exclude(from_user=instance), target=instance, content_type=content_type,
redirect_url=f"{settings.BASE_URL}/video/account/video/{video.pk}",
object_id=instance.pk,
verb=f"{request.user} added like to your video"
)
notify.timestamp = timezone.now()
notify.save()

request.user是一个对象,而不是查询集。所以exclude在这里不起作用。所以你可以这样更新代码:

from_user = request.user if request.user != instance else None
notify = Notify.objects.create(
from_user= from_user,
target=instance,
content_type=content_type,
redirect_url=f"{settings.BASE_URL}/video/account/video/{video.pk}",
object_id=instance.pk,
verb=f"{request.user} added like to your video",
timestamp=timezone.now()
)

我已经删除了其他代码,如notify.save(),因为如果在查询集的create方法中添加时间戳,它将被密文。

最新更新