2

我想弄清楚如何在 django 中使用 pjax。我在这里使用 django-pjax:https ://github.com/jacobian/django-pjax 。我确定我的 pjax 正在工作,因为当我单击 pjax 链接时它会提醒我,但它仍然没有在同一个 html 页面中呈现内容。我认为问题与 django-pjax 有关。我正在使用 django 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 工作。谢谢!

4

2 回答 2

0

Unfortunately right now Django-PJAX requires Django 1.3.

Latest commit was authored on Mar 14, 2012...

于 2014-08-16T21:36:48.223 回答
0

正如 phedoreanu 所说,Django-PJAX 需要 Django 1.3

但是,有django-easy-pjax与 Django 1.5+ 一起使用,上个月最后一次更新

于 2014-08-28T10:04:50.113 回答