Djangoでpjaxを使用する方法を理解しようとしています。ここで django-pjax を使用しています: https://github.com/jacobian/django-pjax。pjax リンクをクリックすると警告が表示されるため、pjax が機能していることは確かですが、同じ html ページでコンテンツをレンダリングしていません。問題はdjango-pjaxに関係していると思います。私はジャンゴ1.5を使用しています。これが私のコードです:
クリックしているリンクがあり、コンテンツを変更したいページのビュー:
from django.http import HttpResponse
from django.shortcuts import render
from django.template.response import TemplateResponse
from djpjax import pjax, pjaxtend
@pjax()
def index(request):
return TemplateResponse(request, 'shuttleservice/index.html', {})
リンクをクリックしたときに表示したいページのビュー:
from django.http import HttpResponse
from django.shortcuts import render
from django.template.response import TemplateResponse
from djpjax import pjax, pjaxtend
@pjax()
def from_ap_form(request):
return TemplateResponse(request, 'orders/from_ap_form.html', {})
置き換えたい div の html:
{% extends 'shuttleservice/base.html' %}
{% load staticfiles %}
{% block pagetitle %}Home{% endblock %}
{% block primary %}
<div id="booking-form-home"> <!-- div I want to replace -->
<p>Are you looking to book a private airport shuttle? <a href='#'>Click here</a>. </p>
<h2> Book Airport Shuttle </h2>
<ul class="booking-nav-bar">
<li class="booking-nav-button">
<a class="booking-nav-text" href='orders/from_ap_form'>From Airport</a> <!-- link I am pressing to use pjax -->
</li>
<li class="booking-nav-button">
<a class="booking-nav-text" href='#'>To Airport</a>
</li>
<li class="booking-nav-button">
<a class="booking-nav-text" href='#'>From/To Airport</a>
</li>
</ul>
<!-- more content -->
</div>
{% endblock %}
そして私のJavaScript:
$(document).ready(function() {
$(document).pjax('a', '#booking-form-home');
$(document).on('pjax:click', function() { alert('hello');});
});
アラートは正しく機能するため、pjax は起動しています。この場合にpjaxが機能しない理由を誰かが知っていますか? Django-pjax は非常に簡単に実装できるはずですが、私はこれを数時間理解しようとしています。また、pjax を使用してすべてのリンクを選択していることは認識していますが、pjax が機能するようになるまでそれを行っています。ありがとうございました!