簡體   English   中英

如何在 Django 中為某些路由重定向到同一頁面?

[英]How can i redirect to same page for certain routes in Django?

在此處輸入圖像描述

我想在用戶登錄后限制注冊頁面,所以如果用戶已登錄,則返回同一頁面

嘗試以下操作:

from django.shortcuts import render, redirect
def signup_view(request):
    if request.user.is_authenticated:
        return redirect("home")
    else:
        return render("signup_page")

另一種簡單的方法是將重定向到您的注冊頁面的按鈕更改為類似“個人資料”並重定向到您的個人資料頁面:將登錄文本按鈕更改為注銷,反之亦然

我不太明白你的問題。 但是您希望新用戶注冊並在登錄時返回注冊頁面或主頁?

如果您希望登錄的用戶在他/她返回時無需登錄或注冊即可轉到主頁,您可以使用redirect()

你的views.py

from django.shortcuts import render, redirect
def registerPage(request):
form = CustomUserCreationForm()
if request.method == 'POST':
    form = CustomUserCreationForm(request.POST)
    if form.is_valid():
        user = form.save(commit=False)
        user.save()
        messages.success(request, 'Account successfuly created!')

        user = authenticate(request, username=user.username, password=request.POST['password1'])

        if user is not None:
            login(request, user)

        next_url = request.GET.get('next')
        if next_url == '' or next_url == None:
            next_url = 'home'
        return redirect(next_url)
    else:
        messages.error(request, 'An error has occured with registration')
context = {'form': form}
return render(request, 'register.html', context)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM