gpt4 book ai didi

python - 如何在django中显示login_required_message

转载 作者:行者123 更新时间:2023-12-01 01:07:52 25 4
gpt4 key购买 nike

我想在重定向到登录页面时显示 login_required 消息,例如您必须先登录才能进行评论。我怎样才能实现这个目标。

views.py

@login_required(redirect_field_name='next',login_url='shop:users_signin')
def review(request,slug):
if request.method == "POST":
form = ReviewForm(request.POST)
if form.is_valid():
review = form.save(commit=False)
review.product = Product.objects.get(slug=slug)
review.user = request.user
review.save()
messages.success(request, 'Review Saved.')
return redirect('shop:detail', slug)
else:
return redirect('shop:detail',slug)

最佳答案

@login_required 装饰器是为了方便,但并不容易自定义行为。如果您使用 CBV,则 LoginRequiredMixin 会更容易,因为您可以重写 handle_no_permission() 以在重定向发生之前向 request 添加消息.

因此,如果您使用基于简单函数的 View ,最好的选择是自己编写身份验证检查:

 def review(request, slug):
if not request.user.is_authenticated:
messages.info("You need to be logged in in order to give a review")
return redirect('%s?next=%s' % (settings.LOGIN_URL, request.path))
# rest of your view here

然后在您的登录模板中确保显示该消息。

关于python - 如何在django中显示login_required_message,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55162107/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com