Джанго Jquery Получить URL Conf - PullRequest
       25

Джанго Jquery Получить URL Conf

1 голос
/ 20 сентября 2011

Хорошо, я пытаюсь вызвать функцию

def user_timetable(request, userid):
    user = get_object_or_404(TwobooksUser,id = userid)
    timeSlots = TimeSlot.objects.filter(user = request.user)
    rawtimeslots = []
    for timeSlot in timeSlots:
        newSlot = {
            'userid': timeSlot.user.id,
            'startTime': str(timeSlot.startTime),
            'endTime': str(timeSlot.endTime),
        }
        rawtimeslots.append(newSlot)
    return HttpResponse(simplejson.dumps(rawtimeslots))

через JavaScript в

{% include 'elements/header.html' %}

    <script type='text/javascript'>

        $(document).ready(function() {

            $.get('/books/personal{{ user.id }}/timetable/', {}, function(data) {

                data = JSON.parse(data);
                var events = new Array();
                for (var i in data) {
                    events.push({
                        id: data[i].id,
                        title: '{{ request.user.name }}',
                        start: Date.parse(data[i].startTime, "yyyy-MM-dd HH:mm:ss"),
                        end: Date.parse(data[i].endTime, "yyyy-MM-dd HH:mm:ss"),
                        allDay: false
                    });
                }

где вышеприведенное существует в шаблоне, который отображается (я думаю, правильно).

URL-адрес, вызывающий функцию user_timetable, равен

   url(r'^books/personal/(?P<userid>\d+)/timetable/$',twobooks.ajax.views.user_timetable),

Но user_timetable по какой-то причине не вызывается.

Кто-нибудь может помочь?

Edit- Хорошо, первоначальная проблема заключалась в том, что шаблон не отображался правильно, так как URL в firebug приходит к '/ books / personalNone / schedule /', что неверно.

Я рендерил шаблон следующим образом -

def renderTimetableTemplate(request):
    #if request.POST['action'] == "personalTimetable":
    user = request.user
    return render_to_response(
        'books/personal.html',
        {
        'user': user,
        },
        context_instance = RequestContext(request)
    )

Есть ли ошибка с этим?

Ответы [ 2 ]

0 голосов
/ 20 сентября 2011

Существует несоответствие между данными, которые вы преобразуете в JSON и передаете в сценарий, и данными, которые ожидает сценарий.Вы передаете элемент userId в каждом временном интервале, в то время как скрипт ожидает только id.

Эта ошибка должна была появиться в консоли Javascript вашего браузера, и ее было бы еще проще увидеть в Firebug (или встроенные средства разработчика Chrome).

0 голосов
/ 20 сентября 2011

Отсутствует косая черта после "personal"

  $.get('/books/personal{{ user.id }}/timetable/', {}, function(data) {

должно быть

  $.get('/books/personal/{{ user.id }}/timetable/', {}, function(data) {

Btw.Вы должны использовать тег шаблона {% url%}.

...