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を呼び出すurlconfは

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

ただし、何らかの理由でuser_timetableが呼び出されていません。

誰か助けてもらえますか?

編集-元の問題は、firebugの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

「パーソナル」の後にスラッシュがありません

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

する必要があります

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

ところで。{% url %} テンプレート タグを使用する必要があります。

于 2011-09-20T15:25:31.383 に答える
0

JSON に変換してスクリプトに渡すデータと、スクリプトが期待するデータとの間に不一致があります。各タイムスロットで要素を渡していますがuserId、スクリプトはid.

このエラーは、ブラウザの Javascript コンソールに表示されるはずであり、Firebug (または Chrome の組み込みの開発者ツール) ではさらに簡単に確認できます。

于 2011-09-20T15:50:57.467 に答える