Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
django ajax过滤字段-搜索bug_Django - Fatal编程技术网

django ajax过滤字段-搜索bug

django ajax过滤字段-搜索bug,django,Django,嘿 我正在尝试使用DjangoAjax过滤字段来处理多对多关系(对于员工和非员工用户,在admin!之外)。我在这个加载项的主页上浏览了介绍,结果是,我无法运行它:-( 我想知道我做错了什么,希望能在这里找到一些帮助 所以我包括了所有我需要的东西。这是我的表格 class MarketingActionForm(forms.ModelForm): contact = ManyToManyByLetter(Contact, field_name="first_name") cl

我正在尝试使用DjangoAjax过滤字段来处理多对多关系(对于员工和非员工用户,在admin!之外)。我在这个加载项的主页上浏览了介绍,结果是,我无法运行它:-(

我想知道我做错了什么,希望能在这里找到一些帮助

所以我包括了所有我需要的东西。这是我的表格

class MarketingActionForm(forms.ModelForm):

    contact = ManyToManyByLetter(Contact, field_name="first_name")

    class Meta:
        model = MarketingAction
        exclude = ('created_by',)

    class Media:
            js = (
                settings.ADMIN_MEDIA_PREFIX + "js/SelectBox.js",
                settings.ADMIN_MEDIA_PREFIX + "js/SelectFilter2.js",
                settings.MEDIA_URL + "js/jquery.js",
                settings.MEDIA_URL + "js/ajax_filtered_fields.js",
            )
我的项目URL.py

(r'^ajax_filtered_fields/', include('ajax_filtered_fields.urls')),
    (r'^dynamic-media/jsi18n/$', 'django.views.i18n.javascript_catalog'),
我的页面中包含的javascript:

         {% load adminmedia %}
        <!--<script type="text/javascript" src="/admin/jsi18n/"></script>-->
        <script type="text/javascript" src="/dynamic-media/jsi18n/"></script>
        <script type="text/javascript" src="{% admin_media_prefix %}js/core.js"></script>    
现在我在问自己,为了使这两个功能在页面上可用,我必须添加什么

编辑2:

好吧,看来这在MarketingAction表单中不起作用:

class Media:
            js = (
                settings.ADMIN_MEDIA_PREFIX + "js/SelectBox.js",
                settings.ADMIN_MEDIA_PREFIX + "js/SelectFilter2.js",
                settings.MEDIA_URL + "js/jquery.js",
                settings.MEDIA_URL + "js/ajax_filtered_fields.js",
            )
但是当我打印出URL时,它们是正确的。。 我的另一个问题是,为什么我在这里引用“js/SelectFilter2.js”以及对SelectFilter.js的html引用中生成的javascript部分

编辑3:

通过print form.media打印出的正确URL

<script type="text/javascript" src="http://localhost:8000/media/admin/js/SelectBox.js"></script>
<script type="text/javascript" src="http://localhost:8000/media/admin/js/SelectFilter2.js"></script>
<script type="text/javascript" src="http://localhost:8000/media/js/jquery.js"></script>
<script type="text/javascript" src="http://localhost:8000/media/js/ajax_filtered_fields.js"></script>
id=“id\u联系人\u发件人” 在第4行中,脚本正在html正文中搜索该元素,没有找到它,在第8行中崩溃,因为框为Null。 这个元素不是由ajax过滤字段自动创建的吗?我必须自己提供这个元素吗?我在文档中没有找到任何与此相关的内容

如何测试此ajax调用是否成功

这是任何web开发人员都必须使用的

如何测试此ajax调用是否成功


使用。这是任何web开发人员的必备工具。

谢谢。很好的提示。我会尝试一下。你知道我如何“欣赏”吗你的帖子有奖励或类似的东西吗?使用firebug,我看到没有找到/定义ajax\u筛选的\u字段..嗯..我要做什么来改变ajax\u筛选的\u字段被重新命名?ajax\u筛选的\u字段没有定义函数onclick(event){ajax\u筛选的\u fields.getManyJSON(“id\u contact”,“crm”,“contact”,“first\u name\u istartswith=p”,“无”);}(单击clientX=483,clientY=388)向上投票表示“这是有用的信息”。您也可以接受1个答案作为您的最爱或最终解决问题的答案。但不要接受我的答案,因为这不是您问题的完整答案,只是一个提示。媒体/js/ajax\u filtered\u fields.js中定义了ajax\u filtered\u fields.js。您能确保浏览器找到它吗(再次使用firebug:go to“Net”tab,重新加载页面,并检查是否找到该文件)。感谢您为我指明了正确的方向。通过firebug,我发现javascript引用没有插入。现在它工作正常。我从这篇文章中学到:…我必须手动添加{{form.media}。谢谢。很好的提示。我会尝试一下。你知道我该怎么做吗“感谢”你的帖子,奖励或类似的东西?使用firebug,我看到没有找到/定义ajax\u筛选的\u字段..嗯..我需要做什么来改变ajax\u筛选的\u字段被重新命名?ajax\u筛选的\u字段没有定义函数onclick(event){ajax\u筛选的\u fields.getManyJSON(“id\u contact”,“crm”,“contact”首先(点击clientX=483,clientY=388)向上投票意味着“这是有用的信息”“。你也可以接受一个答案作为你的最爱或最终解决问题的答案。但不要接受我的答案,因为这不是你问题的完整答案,只是一个提示。媒体/js/ajax\u filtered\u fields.js中定义了ajax\u filtered\u fields。你能确保浏览器找到它吗(同样,使用firebug:go“Net”选项卡,重新加载页面,并检查是否找到该文件)。感谢您为我指明了正确的方向。通过firebug,我发现javascript引用没有插入。现在它工作正常。我从这篇文章中学到:…我必须手动添加{{form.media}。
class Media:
            js = (
                settings.ADMIN_MEDIA_PREFIX + "js/SelectBox.js",
                settings.ADMIN_MEDIA_PREFIX + "js/SelectFilter2.js",
                settings.MEDIA_URL + "js/jquery.js",
                settings.MEDIA_URL + "js/ajax_filtered_fields.js",
            )
<script type="text/javascript" src="http://localhost:8000/media/admin/js/SelectBox.js"></script>
<script type="text/javascript" src="http://localhost:8000/media/admin/js/SelectFilter2.js"></script>
<script type="text/javascript" src="http://localhost:8000/media/js/jquery.js"></script>
<script type="text/javascript" src="http://localhost:8000/media/js/ajax_filtered_fields.js"></script>
var SelectBox = {
2 cache: new Object(),
3 init: function(id) {
4 var box = document.getElementById(id);
5 var node;
6 SelectBox.cache[id] = new Array();
7 var cache = SelectBox.cache[id];
8 for (var i = 0; (node = box.options[i]); i++) {
9 cache.push({value: node.value, text: node.text, displayed: 1});
10 }
11 },