Почему мой Dajax загружает другую страницу? - PullRequest
0 голосов
/ 09 октября 2011

Я работаю на примере случайной машины , но у меня проблемы. Я установил Dajax и Dajaxice в соответствии с этими двумя страницами: Dajax и Dajaxice . Мой файл ajax.py выглядит так:

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

@dajaxice_register
def randomize(request):
    dajax = Dajax()
    dajax.assign('#result','value',random.randint(1, 10))
    return dajax.json()

Вот мои взгляды.py:

from django.shortcuts import render_to_response
from django.template import RequestContext

def dajax(request):
     return render_to_response( 'dajax.html', context_instance=RequestContext(request) )

Вот мой urls.py:

from django.conf.urls.defaults import patterns, include, url
from dajaxice.core import dajaxice_autodiscover
from dajaxice import urls
from django.conf import settings
from Dajax.myapp.views import dajax
dajaxice_autodiscover()

urlpatterns = patterns('',
    (r'^%s/' % (settings.DAJAXICE_MEDIA_PREFIX), include('dajaxice.urls')),
    (r'^dajax/$', dajax),
)

Мой HTML-тег выглядит следующим образом:

<form>
        <input type="text" name="result" value="" id="result">
        <input type="button" name="rand" value="Let's Rand!" id="rand" onclick="Dajaxice.myapp.randomize(Dajax.process); return false;">
</form>

Вот как выглядит мой тег:

<head>
    <title>My base template</title>
    {% dajaxice_js_import %}
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js" type="text/javascript" charset="UTF-8"></script>
    <script src="{{ STATIC_URL }}js/jquery.dajax.core.js" type="text/javascript" charset="UTF-8"></script>
</head>

Я добавил следующее в мой init .py файл в директории моего проекта:

from myapp.ajax import randomize

Также следует отметить, что мое приложение Django называется myapp.

На моей странице, когда я нажимаю Let's Rand !, страница переходит к http://localhost:8000/dajax/?result=2,, и в поле ввода текста не отображается никаких значений. Я проверил консоль в Chromium и ошибок нет.

Неправильно ли я установил Dajax или Dajaxice, или что-то не так с моим кодом выше?

Полагаю, поскольку я использую jQuery вместо Prototype, мне нужно сделать что-то другое.

Спасибо за вашу помощь!

Ответы [ 3 ]

2 голосов
/ 09 октября 2011

Вам нужен return false; в обработчике onClick после вызова Dajax.

1 голос
/ 01 августа 2012

вставьте это в ваши views.py:

from dajaxice.core import dajaxice_autodiscover
dajaxice_autodiscover()
1 голос
/ 10 февраля 2012

Необходимо убедиться, что приложение, из которого вы пытаетесь импортировать файл ajak.py, находится в вашем INSTALLED_APPS в settings.py.

См. Источник для автообнаружения:

http://docs.dajaxproject.com/dajaxice/_modules/dajaxice/core/Dajaxice.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...