2010-02-01 50 views
2

我正在構建一個允許我們的現場工作人員創建約會的網絡應用程序。這涉及到創建一個包含許多外鍵的記錄,其中一些外鍵來自非常大的表。例如,員工需要選擇潛在的數千名客戶中的一個。如何在填寫表格時從大量選項中進行選擇

在Django中這樣做的最好方法是什麼?

  • 彈出一個對話框,允許用戶搜索客戶,給他們的結果,用戶選擇的結果,然後填寫主約會表單,然後 消失?
  • 將約會表單更改爲客戶選擇頁面, 然後用隱藏窗體中的數據重新加載約會頁面?或者 在某些會話變量中保存數據?
  • 一些來自Ajax方法。
  • 嚮導,其中流程是:客戶搜索頁面,結果列表以及它們從結果中選擇,然後爲下一個選項(例如產品選擇)搜索頁面,等等等等

(我倒要保持儘可能簡單。這是我的第一個Django 項目和多年我的第一個Web項目比我照顧 記住)

ALJ

回答

2

恕我直言,你應該考慮某種形式的自動完成的領域。我認爲這會爲用戶帶來最佳的可用性。不幸的是,這總是涉及到Ajax。但是如果你認爲所有的用戶都有JS打開這是沒有問題的。

E.g.

django-autocomplete

或什麼可能是更強大:

django-ajax-selects


如果你做嚮導的方式,將需要較長時間,爲用戶完成任務,並使其更難改變選擇。

編輯:

很好用的Django Ajax的選擇,你可以定義的結果應該是什麼樣子等。所以你可以在名稱後添加地址。

報價:

自定義搜索頻道可當你需要做一個更複雜的搜索,檢查用戶的權限,格式的結果不同的或定製的結果的排序順序寫入。

+0

嗨, 這將是一個好主意,但是,我需要更多的靈活性。例如,許多客戶的名字是相同的(例如Acme Ltd),但地址不同。 另外,我可能想要改變搜索選項。例如根據上次工作日期或地點等搜索自由職業者。 對不起,太難了! 這些引用是偉大的順便說一句。我也會檢查它們。 – 2010-02-01 15:36:36

1

我之前通過集成jQuery自動完成插件完成了此操作。但是,鑑於這是您的第一個項目,並且希望保持簡單,我想您可以使用會話數據選項。例如,您可以顯示一個搜索頁面,用戶可以搜索並選擇一個客戶。然後,您可以將所選客戶對象的ID(例如,ID)存儲爲會話數據,並在顯示錶單時使用它來預填充表單中相應的字段。這正是我想要的。