我試圖讓自動完成燈在我的應用的管理區域工作。該文檔位於這裏:自動完成燈不加載選擇列表
的外鍵選擇列表dissapearing和預期基本文本框出現。但是選擇列表沒有顯示出來。
我已經安裝了應用程序,並將相應的包含放在了我的urls.py中。
相關機型:
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 /並找到了庫存標題的註冊清單,但是它並不完整。它只顯示了其中的20箇中的大約155個。
我已經確認正確的文件正在加載到html中。所有的包括似乎都顯示出來。我在終端上得到了一個304代碼,但我認爲這沒問題。唯一我似乎無法確保被加載的是jquery的鏈接。我在html源代碼的頭部找到了腳本的鏈接,並檢查了似乎可以正常工作的鏈接(https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js) 。
修訂版**
我剛剛發現這個錯誤的Web開發人員錯誤控制檯:類型錯誤: '未定義' 不是一個函數(計算 '$(本).yourlabsWidget()' )在第297行的widget.js中。這表明至少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 .."
>
你確定jQuery沒有被加載多次嗎? – jpic