将jQuery与Django一起使用时,没有反向匹配错误如何调试?

问题描述

| 我正在学习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的教程链接都很好。 编辑:
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是视图的类别之一。     

解决方法

        
{% url userbase_user_search %}
那获得名称为userbase_user_search的URL,但是您没有该名称的URL。     ,        我也在尝试在相同的ajax应用程序中解决此问题。您只需在replace4ѭ下的index.html中替换以下代码即可。如果您在
urls.py
中使用的名称不同于ѭ5name,请用您的名字替换。
$( \'#results\' ).html( \'&nbsp;\' ).load( \"{% url \'demo_user_search\' %}?q=\" + q );
或(在
load()
函数中不带引号
$( \'#results\' ).html( \'&nbsp;\' ).load( {% url \'demo_user_search\' %}?q= + q );