Ajax搜索在Django中不起作用

比什努·巴塔莱

我是django和ajax的新手。我需要做ajax搜索,所以我按如下方式执行:

views.py

def search_titles(request):
    if request.method == "POST":
        search_text = request.POST['search_text']
    else:
        search_text = ''


    articles = Article.objects.filter(title__contains=search_text)
    args = {}
    args.update(csrf(request))
    args['articles'] = articles


    return render_to_response('ajax_search.html',args)

models.py

class Article(models.Model):
    title = models.CharField(max_length=200)
    body = models.TextField()
    pub_date = models.DateTimeField('date published')
    likes = models.IntegerField(default=0)  
    thumbnail = models.FileField(upload_to=get_upload_file_name)

    def __unicode__(self):
        return self.title

ajax_search.html

{% if articles.count > 0 %}

{% for article in articles %}
    <li><a href="/articles/get/{{ article.id }}/" >{{article.title}}</a></li>
{% endfor %}

{% else %}

<li> None to show! </li>

{% endif %}

article.html

{% extends "base.html" %}

{% block sidebar %}
<ul>
    <li><a href="/articles/all">  Articles</a> </li>
    <li><a href="/articles/create">Create Article</a></li>
</ul>

<h3>Search</h3>

{% csrf_token %}

<input type = "text" id="search" name = "search"/>
<ul id ="search-results">

</ul>

{% endblock%}

我也很幸运

settings.py

TEMPLATE_DIRS = (
    '/home/bishnu/Documents/python/django-mike/django_test/templates',

    )

STATICFILES_DIRS = (
    '/home/bishnu/Documents/python/django-mike/django_test/static',
)

和所有的模板是文件夹模板和静态文件夹中的静态文件,而我的js文件在static / js /目录中。

也是ajax.js

$(function(){

    $('#search').keyup(function() {

        $.ajax({
            type: "POST",
            url: "/articles/search/",
            data: { 
                'search_text' : $('#search').val(),
                'csrfmiddlewaretoken' : $("input[name=csrfmiddlewaretoken]").val()
            },
            success: searchSuccess,
            dataType: 'html'
        });

    });

});

function searchSuccess(data, textStatus, jqXHR)
{
    $('#search-results').html(data);
}

base.html

{% load static %}
<DOCTYPE html>
<html lang="en">
<head>
    <title>{% block title %}My Base Template{% endblock %}</title>

    <link rel="stylesheet" type="text/css" href="{% static "css/default.css" %}" >
    <script src="{% static "js/ajax.js" %}"> </script>
    <script src="{% static "js/jquery-2.0.0.min.js" %}"> </script>



</head>

<body>
    <div id = "page">

        <div id = "sidebar">
            {% block sidebar %}
            <ul>
                <li><a href="/articles/all/">Articles</a></li>
                <li><a href="/admin/">Admin</a></li>
            </ul>
            {% endblock %}
        </div>
        <div id="content">
            {% block content %}{% endblock %}

            <img src="{% static "images/python_logo.jpg" %}" />
        </div>
    </div>
</body>
</html>

但是ajax无法正常工作,这是什么问题?

索拉·希拉尼(Saurabh Hirani)

这是Mike Hibbert的django tut的一个例子。我认为您的css / js没有加载,因为您将其加载为:

<link rel="stylesheet" type="text/css" href="{% static "css/default.css" %}" >
<script src="{% static "js/ajax.js" %}"> </script>
<script src="{% static "js/jquery-2.0.0.min.js" %}"> </script>

虽然他在https://www.youtube.com/watch?v=jKSNciGr8kY上的视频提到您应该将其设置为:

<link rel="stylesheet" type="text/css" href="{% static "assets/css/default.css" %}" >
<script src="{% static 'assets/js/jquery-2.0.0.min.js' %}"></script>
<script src="{% static 'assets/js/ajax.js' %}"></script>

我不知道您的staticfiles配置是什么。但是请再按一次视频中的说明,我认为它应该像对我一样起作用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Ajax搜索在Django中不起作用

来自分类Dev

在ajax页面中搜索不起作用

来自分类Dev

Django 分页在我的搜索结果页面中不起作用

来自分类Dev

搜索在Codeigniter中不起作用

来自分类Dev

A *搜索在python中不起作用

来自分类Dev

通配符搜索在Kibana中不起作用

来自分类Dev

搜索栏在prototypecell中不起作用

来自分类Dev

排序在弹性搜索中不起作用

来自分类Dev

搜索查询在PHP中不起作用

来自分类Dev

通配符搜索在Kibana中不起作用

来自分类Dev

搜索栏在prototypecell中不起作用

来自分类Dev

在PFQueryTableView中搜索不起作用

来自分类Dev

ElasticSearch中的嵌套搜索不起作用?

来自分类Dev

搜索在Laravel 5.1中不起作用

来自分类Dev

搜索在 orocrm 2.0 中不起作用

来自分类Dev

在 PHP 中搜索不起作用

来自分类Dev

由于搜索输入中的空格,提交搜索不起作用

来自分类Dev

Ajax在Wordpress管理中不起作用

来自分类Dev

Ajax脚本在IE中不起作用

来自分类Dev

jQuery Ajax在Safari中不起作用

来自分类Dev

jQuery Ajax在功能中不起作用

来自分类Dev

$ .ajax在angularjs中不起作用

来自分类Dev

jQuery Ajax在PhantomJS中不起作用

来自分类Dev

Ajax代码在JavaScript中不起作用

来自分类Dev

Ajax在WordPress中不起作用

来自分类Dev

onClick()函数在ajax中不起作用

来自分类Dev

Ajax 在 CodePen 中不起作用

来自分类Dev

我的搜索pdo ajax代码不起作用

来自分类Dev

单击按钮后自动搜索(ajax调用)不起作用