我正在尝试在我的应用的管理区域中运行自动完成灯。文档位于此处:
外键选择列表消失,基本文本框按预期显示。但是选择列表没有显示出来。
我已经安装了应用程序,并在我的urls.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')
autocomplete_light_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开发人员错误控制台中发现此错误:TypeError:'undefined'不是第297行的widget.js中的函数(评估'$(this).yourlabsWidget()')。这表明至少正在加载widget.js。
最后,当我更新现有的Customer_Order时,空白字段显示NEXT到常规外键下拉。不是取而代之的。我不知道为什么会这样。
我希望某人有类似的问题,或者有一些调试建议。我是Django的新手,我的调试技巧最多也缺乏。
HTML:
<!DOCTYPE html>
<html lang="en-us" >
<head>
<title>Add Customer Order | Art & Fibre</title>
<link rel="stylesheet" type="text/css" href="/static/admin/css/base.css" />
<link rel="stylesheet" type="text/css" href="/static/admin/css/forms.css" />
<!--[if lte IE 7]><link rel="stylesheet" type="text/css" href="/static/admin/css/ie.css" /><![endif]-->
<script type="text/javascript">window.__admin_media_prefix__ = "/static/admin/"; </script>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript" src="/static/autocomplete_light/autocomplete.js"></script>
<script type="text/javascript" src="/static/autocomplete_light/widget.js"></script>
<script type="text/javascript" src="/static/autocomplete_light/addanother.js"></script>
<script type="text/javascript" src="/static/autocomplete_light/text_widget.js"></script>
<script type="text/javascript" src="/static/autocomplete_light/remote.js"></script>
<link rel="stylesheet" type="text/css" href="/static/autocomplete_light/style.css" />
然后在......
<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 .."
>
答案 0 :(得分:0)
所以我也是Django和自动完成灯工具栏的新手,但是我让它为我工作。有几点需要调试:
我无法从您发布的代码段中看出来,但您是否在admin / base_site.html或customer_order / index.html模板中包含以下内容?
{%include'autocomplete_light / static.html'%}
您的admin.py文件末尾似乎也遗漏了这个:
admin.site.register(Customer_Order,Customer_OrderAdmin)