django跳轉頁面傳參


1、如果在反轉url的時候,需要添加參數,那么可以通過傳遞'kwargs'參數到'reverse'函數中。實例代碼:

urls.py

from django.urls import path, re_path
from app01 import views

urlpatterns = [
    path('article/<year>/<month>/',views.article,name='article'),
    path('', views.Login.as_view(), name="login"),
    ]

views.py

from django.shortcuts import HttpResponse, redirect, reverse
from django.contrib.auth.models import User, 
from django.views.generic import View
from django.contrib.auth import authenticate, login, 

class Login(View):
    def get(self, request):
        return render(request, 'login.html')

    def post(self, request):
        username = request.POST.get('username')
        passwd = request.POST.get('passwd')
        user = authenticate(request, username=username, password=passwd)
        if user is not None:
            if user.is_active:
                login(request, user)
                # 登錄成功跳轉頁面
                return redirect(reverse('article', kwargs={'year': 2019, 'month': 12}))
            else:
                err_msg = '用戶未激活,請聯系管理員進行激活'
        else:
            err_msg = '用戶名或密碼有誤'
        return render(request, 'login.html', {"err_msg": err_msg, "username": username})


def article(request, year, month):
    return HttpResponse('您查詢的文章日期是:%s年%s月' %(year, month))

2、如果想要添加查詢字符串的參數,則必須手動的進行拼接。實例代碼如下:

login_url = reverse('login')+"?next=/"


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM