Нет ошибки обратного соответствия при использовании Jquery с Django. Как отлаживать? - PullRequest
0 голосов
/ 12 июня 2011

Я нахожусь на стадии изучения django и при этом столкнулся со странной ошибкой.

Я использую Jquery для предоставления клиенту списка зарегистрированных пользователей.

Мой шаблон выглядит примерно так

<html>
<head>
<title>Userbase</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <link type="text/css" rel="stylesheet" href="/media/js/autocomplete.css">
    <script type="text/javascript" src="/media/js/jquery-1.2.1.js"></script>
    <script type="text/javascript" src="/media/js/dimensions.js"></script>
    <script type="text/javascript" src="/media/js/autocomplete.js"></script>
    {% block extra_css %}{% endblock extra_css %}
</head>
<script type="text/javascript" >
$( document ).ready( function() {
    $( '#searchSubmit' ).click( function() {
        q = $( '#q' ).val();
        $( '#results' ).html( '&nbsp;' ).load(
                    '{% url userbase_user_search %}?q=' + q );
    });
});

$( document ).ajaxStart( function() {
    $( '#spinner' ).show();
}).ajaxStop( function() {
    $( '#spinner' ).hide();
});
</script>
<label for="">Users: </label>
<input type="text" id="UserSearchField" name="UserSearchField">

Мои взгляды выглядят примерно так

def ajax_user_search( request ):
    if request.is_ajax():
        q = request.GET.get( 'q' )
        if q is not None:
            results = User.objects.filter(
                Q( first_name__contains = q ) |
                Q( last_name__contains = q ) |
                Q( username__contains = q ) ).order_by( 'username' )

            template = 'usersearch.html'
            data = {
                'results': results,
            }
            return render_to_response( template, data,
                context_instance = RequestContext( request ) )

Честно говоря, я получил небольшой код jquery из другой кодовой базы. Так что найти его здесь немного проблематично. Любая помощь приветствуется . Все, что мне нужно, - это текстовое поле, которое при нажатии (при включении курсора) дает список всех пользователей, присутствующих в БД.

Любая помощь будет высоко ценится. Любые учебные ссылки для понимания jquery тоже будут хорошими.

Edit:

This is my urls.py


from django.conf import settings
from django.conf.urls.defaults import *
from django.contrib import admin
from django.contrib import databrowse
from world.views import welcome 
from openmaps.views import *
from django.contrib.auth.views import login, logout

admin.autodiscover()

urlpatterns = patterns('',
    url(r'^$', welcome),
    url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
    url(r'^admin/', include(admin.site.urls)),
    url(r'^databrowse/(.*)', databrowse.site.root),
    url(r'^static/(?P<path>. *)$', 'django.views.static.serve', {
       'document_root': 'q:\projects\cape\static', 'show_indexes': True}),

   url(r'^accounts/', include('registration.urls')),
   url(r'^userbase/','userbase.views.PermLayer',name='usersearch'),
)

Вот так это выглядит сейчас. PermLyaer - один из классов представления.

Ответы [ 2 ]

1 голос
/ 12 июня 2011
{% url userbase_user_search %}

Получает URL с именем userbase_user_search, но у вас нет URL с этим именем.

0 голосов
/ 26 июня 2013

Я тоже пытаюсь решить эту проблему в том же приложении ajax. Вы можете просто заменить приведенный ниже код в index.html под своим base.html. Если вы использовали другое имя из demo_user_search в urls.py, замените его на свое имя.

$( '#results' ).html( '&nbsp;' ).load( "{% url 'demo_user_search' %}?q=" + q );

или (без кавычек в функции load()

$( '#results' ).html( '&nbsp;' ).load( {% url 'demo_user_search' %}?q= + q );

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