0

djangoのdajaxテクノロジーによる投稿にコメントを追加したいのですが、これは機能しません。それについて私を助けてくれませんか、またはその例でdajaxを使用する方法をもう少し教えてください。

ajax.py

@dajaxice_register

def add_comment(request):

`if request.method == 'POST':
    post_id = request.POST['post_id']    
    post_obj = Post.objects.get(id = post_id)
    error = {}
    iweb_obj = post_obj.topic.iweb  
    content = request.POST['content']
    img = request.POST['img']       
    if len(content) == 0:
        error[content] = 'Write something'
    else:
        new_comment = Comment(img=img, post=post_obj, content=content, author=request.user, pub_date=datetime.datetime.now())        
        new_comment.save()

        comment = render_to_response('comment.html',{'comment':new_comment})
        dajax = Dajax() 
        dajax.assign('#post-' +int(post_id)+ ' comments', innerHTML, comment)   
        return dajax.json() `

コメントを下に追加する必要があるHTMLの郵便番号。 table width="100%" id="post-{{ post.post.id }}"

投稿はこちら

ul class="comments" {% include "comments.html" %} /ul

/table

JSコードですが、comment_formは別のテンプレートにあります。

$('.comment_form form').submit(function() {

    `var form = $(this);

    if($('textarea', form).val().length > 1) {
            Dajaxice.project.add_comment(Dajax.progress,{});
            $('textarea', form).val('');

                }
            }

     )});`
4

2 に答える 2

0

いくつかの実際のエラーメッセージは役に立ちます-「これは機能しません」は、不可解なDajaxエラーメッセージ「何かがうまくいかない」と一種の一致ですが、提供できる追加情報があるかもしれません。

私はあなたのjs送信関数が持っていることに気づきました:

Dajax.progress   // which should be Dajax.process

FirebugまたはChromeのコンソールは、そのようなエラーを検出するのに役立つはずです

于 2012-07-17T04:18:36.697 に答える
0

コード全体を見ずに何が問題なのかを正確に把握するのは困難ですが、上記の内容から、いくつかの問題を確認できます。

  1. render_to_responseの値を生成するために使用しないでくださいcomment。HttpResponse を返す通常の Django ビューとは異なり、ここでDajax.assignは、HTML 要素の実際のコンテンツを文字列に設定するために使用しています。幸いなことに、Django には、必要なテンプレート レンダリング関数だけが用意されていますrender_to_string。代わりにそれを使用してください。

  2. 行では、Dajax.assign使用しているセレクターが'#post-23 comments'HTML に対応していないように見えます。ここで、commentsは要素名ではなくクラスです。

  3. 同じ行で、(引用符で囲まれている)でinnerHTMLある必要があります。'innerHTML'

  4. toasterleavings が言及しているように、Dajax.progressする必要がありますDajax.process

同様の方法で Dajaxice/Dajax を使用する注釈付きの例については、 Django と Ajax - What can I do?に対する私の回答を見つけることができます。役に立った。

于 2012-07-31T13:17:05.863 に答える