ユーザー(ログインに成功したユーザー)をユーザーのユーザー名で記事ページにリダイレクトしようとしています。何らかの理由で記事のページにユーザーのユーザー名が表示されません。ユーザーをリダイレクトして、Ajaxのユーザー名を別のページに表示する方法は?
記事のHTML:
<div class="container post" >
<h2 class="author"><a>{{ username }}</a></h2>
<hr>
<h6 class="subject"> </h6>
<p class="comment"><br><br>
</div>
記事ビュー:
def article(request):
template = 'librarysystem/article.html'
return render(request, template)
アヤックス:
$('#loginForm').on('submit',function(e){
e.preventDefault();
$.ajax({
type: "POST",
url: "/librarysystem/Login/",
data: {
'username':$("#loginUsername").val(),
'password':$("#loginPassword").val(),
csrfmiddlewaretoken:$
('input[name=csrfmiddlewaretoken]').val
()
},
dataType: 'json',
success: function(data){
if (data.response){
initalizeForm();
$("#invalid").html(" ");
$('#loginmodal').modal('hide');
console.log(data.username);
window.location = data.redirectTo + "?username=" + data.username;
}else
$("#invalid").html("<h5> Invalid username or password. </h5>").css('color','red');
},
error: function(jqXHR, status, err){
alert(jqXHR.responseText);
}
});
});
urls.py:
from django.conf.urls import url
from .import views
urlpatterns = [
url(r'^register/$',views.registerUser),
url(r'^$', views.index, name="Index"),
url(r'^validateRegisterForm/$',views.validateRegisterForm),
url(r'^validateLoginForm/$',views.validateLoginForm),
url(r'^article/$', views.article, name="Article"),
url(r'^Login/$',views.loginUser, name="Login"),
url(r'^Logout/$',views.logoutUser, name="Logout"),
]
views.py:
def loginUser(request):
data = {}
if request.method == "POST":
username = request.POST.get('username')
password = request.POST.get('password')
user = authenticate(username=username,password=password);
if user is None:
data['response'] = False
else:
login(request,user)
data['response'] = True
data['redirectTo'] = "/librarysystem/article/"
data['username'] = username
return JsonResponse(data)
「article」ビューを含めてください – Sayse
@Sayse記事ビューで質問を編集しました –
を参照してください。{{request.user.get_full_name}} –