ฉันกำลังพยายามสร้างเว็บไซต์อย่างง่ายที่มีฟังก์ชั่นเข้าสู่ระบบคล้ายกับที่นี่ใน SO ผู้ใช้ควรสามารถเรียกดูไซต์ในฐานะผู้ใช้ที่ไม่ระบุชื่อและจะมีลิงค์ล็อกอินในทุกหน้า เมื่อคลิกที่ลิงค์เข้าสู่ระบบผู้ใช้จะถูกนำไปที่แบบฟอร์มการเข้าสู่ระบบ หลังจากเข้าสู่ระบบที่ประสบความสำเร็จผู้ใช้ควรจะกลับไปที่หน้าจากที่เขาคลิกลิงค์เข้าสู่ระบบในสถานที่แรก ฉันคาดเดาว่าฉันจะต้องผ่าน URL ของหน้าปัจจุบันไปยังมุมมองที่จัดการกับแบบฟอร์มการเข้าสู่ระบบ แต่ฉันไม่สามารถทำให้มันใช้งานได้
แก้ไข: ฉันคิดออก ฉันเชื่อมโยงไปยังแบบฟอร์มการเข้าสู่ระบบโดยส่งหน้าปัจจุบันเป็นพารามิเตอร์ GET แล้วใช้ 'ถัดไป' เพื่อเปลี่ยนเส้นทางไปยังหน้านั้น ขอบคุณ!
แก้ไข 2: คำอธิบายของฉันดูเหมือนจะไม่ชัดเจนดังนั้นตามที่ขอนี่คือรหัสของฉัน: ให้บอกว่าเราอยู่ในหน้า foo.html และเราไม่ได้เข้าสู่ระบบตอนนี้เราอยากจะมีลิงค์ใน foo.html ที่ลิงค์ เพื่อ login.html ที่นั่นเราสามารถเข้าสู่ระบบแล้วเปลี่ยนเส้นทางกลับไปที่ foo.html ลิงก์ใน foo.html มีลักษณะดังนี้:
<a href='/login/?next={{ request.path }}'>Login</a>
ตอนนี้ฉันได้เขียนมุมมองเข้าสู่ระบบแบบกำหนดเองที่มีลักษณะเช่นนี้:
def login_view(request):
redirect_to = request.REQUEST.get('next', '')
if request.method=='POST':
#create login form...
if valid login credentials have been entered:
return HttpResponseRedirect(redirect_to)
#...
return render_to_response('login.html', locals())
และบรรทัดสำคัญใน login.html:
<form method="post" action="./?next={{ redirect_to }}">
ดังนั้นใช่ว่ามันค่อนข้างมากหวังว่าจะทำให้ชัดเจน