2

アプリの管理領域で autocomplete-light を機能させようとしています。ドキュメントは次の場所にあります。

外部キーの選択リストが消え、基本的なテキスト ボックスが期待どおりに表示されます。しかし、選択リストは表示されません。

アプリをインストールし、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/ に行ったところ、インベントリ タイトルの登録済みリストが見つかりましたが、完全ではありません。155 のうち約 20 のみを表示しています。

  • 適切なファイルが html にロードされていることを確認しました。すべてのインクルードが表示されているようです。すべてのターミナルで 304 コードが表示されますが、これで問題ないと思います。ロードされていることを確認できないと思われる唯一のものは、jqueryへのリンクです。HTMLソースのヘッダーにあるスクリプトへのリンクを見つけ、動作しているように見えるリンク(https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js)を確認しました.

更新しました **

  • Web 開発者エラー コンソールでこのエラーを見つけました: TypeError: 'undefined' is not a function (evaluating '$(this).yourlabsWidget()') in widget.js on line 297. これは、少なくとも widget.js がロード中です。

  • 最後に、既存の Customer_Order を更新すると、空白のフィールドが通常の外部キー プルダウンの隣に表示されます。その代わりではありません。なぜこれが起こっているのか分かりません。

誰かが同様の問題を抱えているか、デバッグのアドバイスがあることを望んでいました。私は 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 .."
>
4

1 に答える 1

0

ですから、私はDjangoとオートコンプリートライトツールバーも初めてですが、うまく機能するようになりました。デバッグのためのいくつかのこと:

  • FirefoxとFirebugは私にとって本当に役に立ちました。javascriptとhtmlのページで、リアルタイムで何がロードされているかを正確に確認できます。(ボックスに入力すると、どのオートコンプリートライトクエリが実行されているかを確認できます)
  • Django-debug-toolbarも本当に役に立ちました。データベースに対してどのようなクエリが実行されているかを確認できます。
  • 投稿したコードスニペットからはわかりませんが、admin/base_site.htmlまたはcustomer_order/index.htmlテンプレートに次のものを含めましたか?

    {%include'autocomplete_light / static.html'%}

  • また、admin.pyファイルの最後にこれがないようです。

    admin.site.register(Customer_Order、Customer_OrderAdmin)

于 2012-12-30T20:08:46.813 に答える