【发布时间】:2016-12-27 23:54:53
【问题描述】:
Views.py
from django.shortcuts import render
from django.template.context_processors import csrf
from django.http import HttpResponseRedirect
from django.shortcuts import render_to_response
from .models import studentDetails
from .forms import loginForm
# Create your views here.
def login(request):
c = {}
c.update(csrf(request))
return render(request, "login.html", c)
def auth_view(request):
username = request.POST.get("username", "")
password = request.POST.get("password", "")
q = studentDetails.objects.get(name=username)
if q.password==password:
return HttpResponseRedirect("/student/accounts/loggedin")
return HttpResponseRedirect("/studemt/accounts/invalid")
def loggedin(request):
username = request.GET.get("username")
return render(request, "loggedin.html", {"full_name": username})
def invalid(request):
return render(request, "invalid_login.html")
def logout(request):
return render(request, "logout.html")
Urls.py
from django.conf.urls import url
from django.contrib import admin
from .views import (
login,
auth_view,
loggedin,
logout
)
urlpatterns = [
url(r"^accounts/login/$", login , name="login"),
url(r"^accounts/auth/$", auth_view ,name="auth_view"),
url(r"^accounts/loggedin/$", loggedin , name="loggedin"),
url(r"^accounts/logout/$", logout, name="logout"),
]
我想将用户名从 auth_view 发送到登录视图,但我不知道该怎么做。
我用过username = request.GET.get("username"),但它不起作用。
我还想在 url 中显示用户名,使其看起来像 /student/username/
其中用户名将随着不同的用户登录而改变。
【问题讨论】:
-
“用户名会随着不同的用户登录而改变” 我想,我的回答会帮助你stackoverflow.com/questions/38781442/…
-
在我的问题中,auth_view 没有呈现任何页面,它只是检查数据,它想将用户名从 auth_view 发送到登录视图。
-
您通常会将其存储在session 中。或者使用 djangos auth system 而不是自己滚动。
-
你能告诉我如何存储会话吗?
-
@RohitChopra - 你应该阅读我指出的 [链接] (docs.djangoproject.com/en/1.10/topics/http/sessions)。 this 看起来也不错。
标签: python django django-templates django-views django-urls