저는 Django를 처음 사용하고 있으며, 장고보기에서 사용되는 ajax에서 보낸 변수를 얻으려고 시도하고 있습니다. 내보기 :Ajax 호출을 사용하여 Django보기를 업데이트하십시오.
def index(request):
if (request.is_ajax()):
username = request.GET['user']
else:
username = ''
context = {'user':username}
return render(request, 'index.html', context)
와 아약스 :
$.ajax({
url: '/index/',
type: 'GET',
data: {user: response.name, page: page}
});
내 문제가 username
가 AJAX 호출을 기반으로, 뷰에 업데이트되지 않는다는 것입니다. 네트워크 응답을 살펴보면 적절한 업데이트 된 사용자 이름을 전달하기 때문에 Ajax 호출이 제대로 작동하고 있다는 것을 알고 있습니다.
내가 믿는 것은보기가로드 된 다음 아약스 호출이 발생하고 사용자 이름이 업데이트된다는 것입니다. 그러나보기가 다시 렌더링되지 않으므로 변경되지 않습니다. 나는 사용자 이름을 얻은 후에 또 다른 렌더링을 시도했지만 아무 것도 변경하지 않았고 또한 ajax 호출을 처리하기위한 별도의 뷰를 만들었지 만보기가 항상 ajax 요청없이로드되기 때문에 어느 쪽도 작동하지 않는 것처럼 보입니다. 사실입니다.
어떻게 작동합니까? 어떤 도움을 주셔서 감사합니다.
아약스 응답에서 무엇을 얻습니까? 너는 그걸로 무엇을하고 있니? Ajax 요청에'complete : function (resp) {...}'를 추가하면 그 함수 안에'resp.responseText'가 무엇입니까? – jproffitt
죄송합니다. 아내가있는 초보자도 있습니다. console.log에 응답 텍스트가 있으면 새로운 'username'이있는 업데이트 된 색인 페이지가 기록됩니다. 그렇다면 페이지를 다시로드해야 성공할 수 있습니까? – mcw
DOM을 새 DOM으로 바꿀 수 있습니다. 그러나 이것은 매우 비효율적 인 방법입니다. 사용자 이름을 반환하고 업데이트해야합니다. 브랜든의 도움에 대한 답변을보십시오. console.log (json.user);'$ ('username')와 같은 일을한다 .html (json.user)' – jproffitt