【发布时间】:2021-08-22 19:44:04
【问题描述】:
我正在编写一个 Django 博客站点,其中博客帖子需要经过管理员(超级用户)的批准才能发布。在我的 BlogPost 模型中,有一个布尔字段“已批准”。
我已经设法实现了所有这些。但是,我还希望在用户的帖子获得批准时通知用户(通过 django 消息)。 (在管理员批准他们的帖子之前,用户可以在此期间做任何他们想做的事情,因此消息必须出现在用户当前所在的任何页面上。此外,如果用户在同时(例如,在不同的选项卡上),消息应该出现在所有选项卡上。)这就是我在实施时遇到的一些问题。我已经起草了一个小代码 sn-p 封装了我想做的事情。
@receiver(post_save, sender=BlogPost)
def message_on_approve(sender, instance, **kwargs):
if instance.user != (the current user who is logged in): return
if instance.approved:
messages.success((request, to be sent to the page user is currently on), 'Your post has been approved!')
else:
messages.error((the same request), 'Your post has not been approved.')
我现在面临两个问题。首先,由于我需要知道哪个用户已登录,因此代码 sn-p 似乎应该放在我的 views.py 中。但是,这意味着我无权访问当前登录的用户,除非我将其设为本地功能。第二个是我也不知道要为消息调用提出什么请求。
任何关于我如何进行这项工作的建议都将不胜感激。谢谢!
【问题讨论】:
标签: python django django-views django-messages