2011-04-11 32 views
0

我只是試圖在Django中創建一個按鈕或鏈接,點擊後會增加一個模型。但是到目前爲止,這已經非常混亂。我明白,我必須AJAX - 如果這個過程。我試過使用DajaxiceDjango AJAX增量

但最終遇到了很多麻煩。

接受的方法是什麼?謝謝!

到目前爲止,我只是跟隨Dajaxice的教程。

我base.html文件:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Transitional//EN" 

「http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd」> {%負載dajaxice_templatetags%}

我的博客 {%dajaxice_js_import%}

<script type="text/javascript"> 
     function my_js_callback(data){ 
      if(data==Dajaxice.EXCEPTION){ 
       alert('Error! Something happens!'); 
      } else { 
       alert(data.message); 
      } 
     } 
    </script> 
</head> 
<body> 
    <h1><a href=」」>My Blog</a></h1> 
    {% block content %}{% endblock %} 
</body> 

在該塊內容我有<a href="" onclick="Dajaxice.example.myexample(my_js_callback);">Click me!</a>

這個代碼{% dajaxice_js_import %}產生<script src="/dajaxice/dajaxice.core.js" type="text/javascript" charset="utf-8"></script>這只是http://localhost:8000/dajaxice/dajaxice.core.js

到目前爲止的問題是,該文件無法找到,但我已經把它在/模板/ dajaxice/

不知道該怎麼做。謝謝!靜態文件

後再提

編輯所以看起來我沒有正確放置我的靜態文件。我按照指示在Django's docs how to serve static files

讓我知道如果我這樣做的權利。我在「myProject/static」下創建了一個「靜態」文件夾。我把靜態/例如「myProject的/靜態/的prototype.js」

內我的JS文件我也有STATIC_URL='static''django.contrib.staticfiles',在INSTALLED_APPS

我現在嘗試使用<script type="text/javascript" src="{{ STATIC_URL }}prototype.js"/>但還是搶的prototype.js沒有利用...

我現在做錯了什麼? 謝謝! * 編輯: *看起來像/靜態/應該在應用程序文件夾內。如何混亂...

+0

你能給你遇到的問題和/或你的代碼示例正在使用? – Arjen 2011-04-11 08:41:37

+0

你在使用jquery嗎? – 2011-04-11 08:43:13

+0

用示例代碼編輯我的問題。我沒有使用jQuery或任何其他AJAX庫。據說Dajaxice的構建使我們不需要任何AJAX庫。 – rabbid 2011-04-11 08:49:58

回答

2

記住atomicly做到這一點:

# models.py 
class Page(models.Model): 
    hits = models.PositiveIntegerField() 

# views.py 
def hit(request, page_pk): 
    Page.objects.filter(pk=page_pk).update(hits=F('hits')+1) 
    return HttpResponse() 

...或使用事務:

# views.py 
from django.db.decorators import commit_on_success 

@commit_on_success 
def hit(request, page_pk): 
    page = Page.objects.filter(pk=page_pk) 
    page.hits += 1 
    page.save() 
    return HttpResponse() 
+0

感謝您的回覆。交易在哪裏? – rabbid 2011-04-11 08:58:29

+0

謝謝!那麼我怎麼做一個按鈕或鏈接調用命中()? – rabbid 2011-04-11 09:05:14

+0

爲視圖添加URL模式,然後使用ajax請求URL。 – 2011-04-11 09:07:47