2012-10-02 92 views
-1

我正在使用django和jquery進行項目工作,我必須實現像Facebook這樣的評論,我不知道如何去做。請我需要你的幫助,並且需要你對代碼非常具體,因爲我是一個新手。用django和jquery添加Facebook的評論

這是代碼請告訴我我失蹤了。

的Javascript

<script type="text/javascript"> 
    $(document).ready(function() { 
     $('#category_form').submit(function(e) { 
     e.preventDefault(); 
     $.ajax({ 
     type: 'POST', 
     url: '{% url pos.views.add_category %}', 
     data: $('#category_form').serialize(), 
     dataType: 'json', 
     success: function() { 
      location.reload(); 
    $('#category_form').get(0).reset(); 
     }, 
    }); 
    return false; 
    }); 
    }); 
</script> 

形式

class CategoryForm(ModelForm): 
    name = forms.CharField(label=(u'Categoria')) 
    class Meta: 
    model = Category 

的url

url(r'^category/$', 'pos.views.Categories'), 

查看

def add_comment(request): 
    if request.method == 'POST' and request.is_ajax(): 
     category_form = CategoryForm(request.POST) 
     if category_form.is_valid(): 
     category = category_form.save(commit=True) 
     category.save() 
     json = simplejson.dumps(category, ensure_ascii=False) 
     return HttpResponse(json, mimetype='application/json') 
    return render_to_response(simplejson.dumps({'category': category,}),  context_instance=RequestContext(request), mimetype='application/json') 
+1

嘗試自己的東西,併發布代碼以獲得更好的建議。 – geekman

+0

我發現了很多信息,但使用PHP不Djjango,我沒有想法如何開始。我有一點Django的經驗,但只是從jQuery開始。 – rpalma

+1

給他自己的,如果你擅長php,那麼試試zend,而不是python。 – geekman

回答

0

你的觀點有兩種回報

return HttpResponse(json, mimetype='application/json') 
return render_to_response(simplejson.dumps({'category': category,}),  context_instance=RequestContext(request), mimetype='application/json') 

擺脫一個你不需要的。 (這是很難告訴你從格式化不好的代碼所需要的。)

在這裏閱讀jQuery的文檔:http://api.jquery.com/jQuery.ajax/

具體來說,檢查出回調函數隊列部分

更改您的JavaScript這樣的AJAX確實是這樣,而不是:

$.ajax({ 
     type: 'POST', 
     url: '{% url pos.views.add_category %}', 
     data: $('#category_form').serialize(), 
     dataType: 'json', 
     success: function(data) { 
      $("#results").html(data); 
     } 
      ... 

這將使用成功的回調來設置返回的數據(JSON從您的視圖返回)作爲HTML DAT在HTML中帶有ID「結果」的元素的一個元素。

+0

亞倫感謝您的幫助。我不知道哪個網址必須在ajax上..我實際上有負責添加對象到數據庫的視圖是好的嗎?然後視圖如何填充存儲在數據庫中的數據? – rpalma

0

我考慮發佈評論主要問題你將與登錄,在此之前,你需要授權用戶,授權用戶可以使用django-social-auth

正如你所說的,在保存之後你想要做一些事情,你可以通過覆蓋模型中的保存功能來完成。對於如

class Updates(models.Model) 
    ........... 
    ........... 

    def save(): 
     super(save()) 
     .................... 
     # Do your job here 
     .................... 

感謝

+0

我的問題是,我不知道如何返回結果保存在數據庫中沒有刷新頁面 – rpalma

+0

根據你的要求我做了更改,檢查出來 –