簡體   English   中英

Dajax無法正常工作

[英]Dajax not working

Dajax無法正常工作,我無法理解原因。 我正在使用Django 1.7

我的ajax.py文件看起來像這樣:

from dajax.core import Dajax
from dajaxice.decorators import dajaxice_register

@dajaxice_register
def jmc_foundation_tower_number(request, option):

    print("It works!")

我的模板調用如下:

<div class='col-lg-3'>
  <select id='id_tower_number' name='tower_number' onchange="Dajaxice.core.views.jmc_foundation_tower_number(Dajax.process, {'option':$this.value})" onclick="Dajaxice.core.views.jmc_foundation_tower_number(Dajax.process, {'option':$this.value})" class='form-control'>
       {% for tower in towers %}
          <option value='{{ tower }}'>{{ tower }}</option>
       {% endfor %}
   </select>
</div>

我的urls.py如下:

from django.conf.urls import patterns, include, url
from django.contrib import admin

from dajaxice.core import dajaxice_autodiscover, dajaxice_config
dajaxice_autodiscover()


urlpatterns = patterns('',
    url(r'^index$', 'core.views.index', name='index'),

    url(r'^admin/', include(admin.site.urls)),
    url(dajaxice_config.dajaxice_url, include('dajaxice.urls')),

)

django-dajaxdjango-dajaxice

我應該使用django-dajax還是django-dajaxice?

簡而言之,我是4年前創建的這些項目,是一個很酷的工具,目的是解決我當時遇到的一個具體問題。

這些天來使用這些項目是一個壞主意。 (...)如果要使用此項目,則可能是錯誤的。 從長遠來看,您應該停止將您的界面與您的后端,或者...長期使用。

jorgebastida / Django的dajax

當使用onclick之類的函數時,帶有下划線('_')的javascript函數名顯然不起作用,最好使用somefunction()而不是some_function()之類的函數來使Dajax正常工作。

以下是使用dajax制作Helloworld的示例

models.py:

 from django.db import models
 from dajax.core import Dajax
 from dajaxice.decorators import dajaxice_register
 @dajaxice_register
 def say_hello(request,value):
    dajax = Dajax()
    dajax.alert(value)
    return dajax.json()

urls.py:

urlpatterns = patterns('',
    # Examples:
    url(r'^$', 'server.views.index', name='index'),

其中server.views.index中的“服務器”是項目中的應用程序名稱

在index.html文件中,您必須使用jquery函數來調用此dajax請求,如下index.html所示:

 <html>
    <script>
      function print_helloworld(){
                var value = Dajaxice.server.models.say_hello(Dajax.process,{'value':'Hello World!'});
            }
    </script>
    <body>
       <button id='mybtn' class='btn btn-primary' onclick='print_helloworld()'>Hello World</button>
    </body>
 </html>

如果您需要從公共ip訪問索引文件,則必須在按鈕之前添加{%csrf_token%}令牌

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM