Я пишу приложение django, в котором пользователь хочет нажать кнопку и получить частичное изменение страницы. Данные должны передаваться с сервера на веб-страницу без необходимости полного обновления страницы. Эта задача звучала как работа для AJAX. Однако я не могу заставить Ajax работать в моем приложении.
Я не могу получить вызов в моей функции на стороне сервера. Ниже приведен код предмета о пропущенных звонках. Мое намерение состоит в том, чтобы заставить серверную часть возвращать список пропущенных вызовов и отображать его пользователю без обновления страницы.
Когда я нажимаю кнопку, я получаю всплывающее окно с сообщением «Что-то идет не так» с помощью firebug, я прослеживаю это до DAJAXICE_EXCEPTION, но больше ничего не знаю об этом.
Что здесь происходит? Как мне сделать эту работу? Также, если есть более простой способ сделать это, не требующий библиотеки Dajax, пожалуйста, сообщите. И любые пошаговые примеры были бы очень полезны.
Функция на стороне сервера
-------- /jim/ajax.py---------
@dajaxice_register
def missedCalls(request, user):
print "Ajax:missedCalls" #never prints...
missedCalls = ScheduledCall.objects.filter(status__exact='Missed')
render = render_to_string('examples/pagination_page.html', { 'missedCalls': missedCalls })
dajax = Dajax()
dajax.assign('#calls','innerHTML', render)
return dajax.json()
------- page.html ---------
<script type='text/javascript'>
function missed_calls_callback(data){
# The dajax library wants a function as a return call.
# Have no idea what I'm supposed to do with this part of the function.
# what is supposed to go here?
alert(data.message);
}
</script>
<!-- Button -->
<input type="button" name="calltest" value="JQuery Test"
id="calltest" onclick="Dajaxice.jim.missedCalls(missed_calls_callback, {'user':{{ user }}})">
<div id="calls">
{% include "calls.html" %}
</div>
-------- calls.html --------
<h2> Missed Calls</h2>
<ul>
{% for i in missedCalls.object_list %}
<li>{{ i }}</li>
{% endfor %}
</ul>