設(shè)置book應(yīng)用下的頁面需要登錄才能訪問
user/views.py
def login(request):
...
#部分省略
user=User.objects.filter(username=username,password=my_md5(password))
if user:
#將用戶的username保存到session中
request.session["login_user"] =username
book/views.py
#驗證是否登錄的裝飾器
def check_user(func):
def inner(*args, **kwargs):
#判斷是否登錄
username = args[0].session.get("login_user", "")
if username == "":
#保存當(dāng)前的url到session中
args[0].session["path"] = args[0].path
#重定向到登錄頁面
return redirect(reverse("user:login"))
return func(*args, **kwargs)
return inner
@check_user
def book_list(request):
book_list = BookInfo.objects.all()
return render(request, "book/book_list.html", {"book_list": book_list})
@check_user
def book_detail(request, bid):
book = BookInfo.objects.get(id=bid)
return render(request, "book/book_detail.html", {"book": book})
@check_user
def index(requests):
return render(requests, "book/index.html", {})