2014-10-06 2 views
0

Dajax не работает, я не могу понять, почему. Я использую Django 1.7Dajax не работает

Мой 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')), 

) 

ответ

0

По-видимому, имена функций javascript с символами подчеркивания ('_') не работают при использовании таких функций, как onclick.It лучше для нас e выполняет функции somefunction() вместо some_function(), чтобы заставить Dajax работать.

0

Ниже приведен пример, чтобы сделать Helloworld использованием dajax

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'), 

где "сервер" в сервере .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%} маркера перед той кнопкой

1

Джанго-dajax и Джанго-dajaxice

Должен ли я использовать django-dajax или django-dajaxice?

Одним словом, Нет. Я создал эти проекты 4 года назад в качестве прекрасного инструмента в , чтобы решить некоторые конкретные проблемы, которые у меня были в то время.

В эти дни использование этих проектов - плохая идея. (...) Если вы хотите использовать этот проект, вы, вероятно, ошибаетесь. Вы должны остановить couplig ваш интерфейс с вашим бэкэнд или ... в долгосрочной перспективе он взорвется в вашем лице.

jorgebastida/django-dajax