1

好的,所以我正在尝试调用该函数

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
                    });
                }

以上内容存在于正在呈现的模板中(我认为正确)。

调用函数 user_timetable 的 url conf 是

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

但是,由于某种原因没有调用 user_timetable 。

任何人都可以帮忙吗?

编辑-好的,最初的问题是模板没有正确呈现,因为萤火虫中的 url 来到 '/books/personalNone/timetable/' ,这是不正确的。

我正在渲染这样的模板 -

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

这有什么错误吗?

4

2 回答 2

0

您要转换为 JSON 并传递给脚本的数据与脚本预期的数据不匹配。您userId在每个时间段中传递一个元素,而脚本只需要id.

这个错误应该已经出现在浏览器的 Javascript 控制台中,并且在 Firebug(或 Chrome 的内置开发者工具)中更容易看到。

于 2011-09-20T15:50:57.467 回答
0

“个人”后面少了一个斜线

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

应该

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

顺便提一句。你应该使用 {% url %} 模板标签。

于 2011-09-20T15:25:31.383 回答