Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.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 自动完成指示灯未加载选择列表_Django_Django Autocomplete Light - Fatal编程技术网

Django 自动完成指示灯未加载选择列表

Django 自动完成指示灯未加载选择列表,django,django-autocomplete-light,Django,Django Autocomplete Light,我正在尝试让自动完成灯在我的应用程序的管理区工作。文档位于此处: 外键选择列表正在消失,一个基本文本框按预期显示。但是选择列表没有显示 我已经安装了应用程序,并在my URL.py中放置了相应的include 相关型号: class Inventory(models.Model): title = models.CharField(max_length=100, db_index=True) product_code = models.CharField(max_lengt

我正在尝试让自动完成灯在我的应用程序的管理区工作。文档位于此处:

外键选择列表正在消失,一个基本文本框按预期显示。但是选择列表没有显示

我已经安装了应用程序,并在my URL.py中放置了相应的include

相关型号:

class Inventory(models.Model):
    title = models.CharField(max_length=100, db_index=True)
    product_code = models.CharField(max_length=100, db_index=True, primary_key = True)

class Customer_Order(models.Model):
    order_id = models.CharField(max_length=100, db_index=True, null = True, blank = True)
    customer_id = models.ForeignKey('inventory.Customer')
    products = models.ManyToManyField('inventory.Inventory', through='inventory.Customer_Order_Products')

class Customer_Order_Products(models.Model):
    order_id = models.ForeignKey('inventory.Customer_Order')
    product_id = models.ForeignKey('inventory.Inventory')
自动完成\u light\u registry.py:

import autocomplete_light
from inventory.models import Inventory

autocomplete_light.register(Inventory, search_fields=('title',),
               autocomplete_js_attributes={'placeholder': 'city name ..'})
admin.py:

class Customer_Order_ProductsInline(enhanced_admin.EnhancedAdminMixin, admin.TabularInline):
    model = Customer_Order.products.through
    extra = 0
form = autocomplete_light.modelform_factory(Customer_Order_Products)

class Customer_OrderAdmin(enhanced_admin.EnhancedModelAdminMixin, admin.ModelAdmin):
     inlines = (Customer_Order_ProductsInline, OrderStatusInline )  
我自己的调试:

  • 我已转到/autocomplete/并找到已注册的目录标题列表,但它并不完整。它只显示了155个中的20个

  • 我已经确保在html中加载了正确的文件。所有的包裹似乎都出现了。我在终端上得到了304码,但我认为这没问题。我唯一无法确保加载的是jquery的链接。我在html源代码的标题中找到了指向脚本的链接,并检查了该链接(https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js)这似乎有效

更新**

  • 我刚刚在web developer错误控制台中发现了这个错误:TypeError:“undefined”不是widget.js第297行的函数(计算“$(this).yourlabsWidget()”)。这表明至少有widget.js正在加载

  • 最后,当我更新一个现有的CuuleService订单时,空白字段显示在常规的外键拉下旁边。没有取代它。我不知道为什么会这样

我希望有人有类似的问题,或者有一些调试建议。我是Django的新手,我的调试技能充其量也不够

HTML:


添加客户订单|艺术品和纤维
窗口。_uadmin_media_前缀_uu=“/static/admin/”;
后来

<span class="autocomplete-light-widget customer_order_products_set-0-product_id
single"
id="id_customer_order_products_set-0-product_id-wrapper"
data-max-values="1" data-bootstrap="normal"
data-autocomplete-url="/autocomplete/InventoryAutocomplete/" data-autocomplete-choice-selector="[data-value]" data-autocomplete-placeholder="Product name .."
>

所以我对Django和“自动完成灯光”工具栏也不熟悉,但我让它为我工作。调试时需要注意以下几点:

  • Firefox+Firebug对我来说真的很有用。您可以准确地看到javascript和html页面中实时加载的内容。(这样您可以在框中键入时看到正在进行的自动完成灯光查询)
  • Django调试工具栏也非常有用。您可以看到对数据库进行了哪些查询
  • 我无法从您发布的代码片段中判断,但您是否在admin/base\u site.html或customer\u order/index.html模板中包含以下内容

    {%include'autocomplete\u light/static.html%}

  • 您的admin.py文件末尾似乎也缺少以下内容:

    管理站点注册(客户订单,客户订单管理)


谢谢您抽出时间!我正在使用Safari开发工具。据我所知,一切都在加载中。但这些查询不会引起任何请求。Ie:当我在文本字段中输入时,什么也没有发生(顺便说一下,空白,甚至连占位符都没有出现)。我似乎无法通过一个未定义的函数错误。如果未加载widget.js,则无法调用该函数。不管怎样,我想我不是很清楚。但是不用担心,我已经注册了我的管理员。我要检查的一件事是js文件是否正确加载——它可能位于错误的目录中。当您检查页面源代码时,您需要在标题中看到这一点,这将加载widget.js。如果看不到,则表示未正确加载autocomplete\u light/static.html文件。您需要将这一行{%include'autocomplete_light/static.html%}包含在模板/yourapp/index.html(或任何页面)中。如果如您所说的“正在加载所有内容”,那么widget.js应该显示正在加载所有内容。我将用html更新这个问题以显示这一事实。另外,除非这里出现了一些javascript魔术。不可能在未加载的代码行上接收错误。换句话说,如果widget.js没有被加载,它将无法尝试调用函数。(文件正在加载的另一个证明)。您确定jQuery没有被加载多次吗?
<span class="autocomplete-light-widget customer_order_products_set-0-product_id
single"
id="id_customer_order_products_set-0-product_id-wrapper"
data-max-values="1" data-bootstrap="normal"
data-autocomplete-url="/autocomplete/InventoryAutocomplete/" data-autocomplete-choice-selector="[data-value]" data-autocomplete-placeholder="Product name .."
>