【问题标题】:How to redirect back two pages Django?如何重定向回两个页面Django?
【发布时间】:2021-12-20 08:11:12
【问题描述】:

我有一个书页。在此页面上是“收藏”按钮。如果用户单击按钮并通过身份验证,它将使用 addBookmark 视图将新对象添加到数据库中(并重新加载图书页面)。但是,如果用户没有通过身份验证,它会首先重定向到登录页面。

@login_required
def addBookmark(request, slug):
book = Book.objects.get(slug=slug)
if BookMark.objects.filter(user=request.user, book=book).exists():
    bookMark = BookMark.objects.get(user=request.user, book=book)
    bookMark.delete()
    return HttpResponseRedirect(request.META.get("HTTP_REFERER")) 

newBookMark = BookMark.objects.create(user=request.user, book=book)
newBookMark.save()
return HttpResponseRedirect(request.META.get("HTTP_REFERER")) 

问题: 当用户被重定向到登录页面时,下一个 URL 只会在 db 中添加一个新对象并重新加载页面,但这是登录页面。如果用户没有首先通过身份验证,如何将用户重定向回图书页面?

【问题讨论】:

    标签: python django redirect


    【解决方案1】:

    首先,删除@login_required

    您可以像这样手动重定向用户:

    if not request.user.is_authenticated:
       return redirect("bookmark_url")
    

    【讨论】:

    • 它不能解决问题。我的书签网址只是将一个对象添加到数据库中并刷新页面。首先,我必须检查用户是否经过身份验证。如果是,我将使用上面的视图并刷新书页。如果不是,我必须重定向到“登录”视图,身份验证后我需要调用“addBookmark”视图,它将在数据库中添加一个对象,然后我需要将用户重定向回图书页面(而不是只是重新加载页面)
    猜你喜欢
    • 2018-01-05
    • 2011-03-19
    • 1970-01-01
    • 2018-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-10
    • 1970-01-01
    相关资源
    最近更新 更多