如何解决将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( \' \' ).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( \' \' ).load( \"{% url \'demo_user_search\' %}?q=\" + q );
或(在load()
函数中不带引号
$( \'#results\' ).html( \' \' ).load( {% url \'demo_user_search\' %}?q= + q );
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。