Я пишу простое приложение Django и хочу добавить ajax paging с помощью Dajax/Dajaxice. Я начал с попытки реализовать простой пример подкачки с сайта Dajax (http://dajaxproject.com/pagination/), но не смог заставить его работать. Всякий раз, когда я нажимаю на кнопку «Далее» я получаю следующее сообщение об ошибке: JSКак мне назвать функции Dajax/Dajaxice из моего шаблона Django
Uncaught TypeError: Cannot call method 'pagination' of undefined
проект My Django называется «DoSomething» - и она содержит одно приложение под названием «ядро».
Я следовал всем инструкциям, чтобы установить Dajaxice здесь: https://github.com/jorgebastida/django-dajaxice/wiki/installation
У меня есть файл питона в каталоге «ядро» под названием «ajax.py», который содержит следующий код:
from views import get_pagination_page
from dajax.core.Dajax import Dajax
from django.template.loader import render_to_string
from dajaxice.decorators import dajaxice_register
from django.utils import simplejson
@dajaxice_register
def pagination(request, p):
try:
page = int(p)
except:
page = 1
items = get_pagination_page(page)
render = render_to_string('posts_paginator.html', { 'items': items })
dajax = Dajax()
dajax.assign('#pagination','innerHTML',render)
return dajax.json()
Мой views.py файл содержит следующий метод:
def index(request):
posts = Post.objects.order_by('id').reverse()
items = get_pagination_page(1)
return render_to_response('index.html', locals(), context_instance=RequestContext(request))
def get_pagination_page(page=1):
from django.core.paginator import Paginator, InvalidPage, EmptyPage
from django.template.loader import render_to_string
items = Post.objects.order_by('id').reverse()
paginator = Paginator(items, 10)
try:
page = int(page)
except ValueError:
page = 1
try:
items = paginator.page(page)
except (EmptyPage, InvalidPage):
items = paginator.page(paginator.num_pages)
return items
Мой шаблон индекс содержит следующее:
<div id="pagination">
{% include "posts_paginator.html" %}
</div>
Мой шаблон posts_paginator.html содержит ссылку, чтобы вызвать метод постраничной:
{% for i in items.object_list %}
{{ i }}<br>
{% endfor %}
{% if items.has_next %}
<a href="#" onclick="Dajaxice.core.pagination(Dajax.process,{'p':{{ items.next_page_number }}})">next</a>
{% endif %}
Мой вопрос, в пределах стоимости OnClick, как я должен быть ссылки на метод постраничной (от моего ajax.py). Я не могу ничего найти, чтобы объяснить это, и я пробовал каждую комбинацию имени/имени проекта, о котором я могу думать!
СПАСИБО! :)
Пожалуйста, помогите:! '( – tominwood