[英]Improving Performance of Django ForeignKey Fields in Admin
默認情況下,Django的管理員將admin中的ForeignKey字段作為選擇字段呈現,列出外表中的每個記錄作為選項。 在一個可管理的模型中,我將User模型引用為ForeignKey,因為我有成千上萬的用戶,Django正在使用數千個選項填充選擇。 這導致管理頁面加載速度非常慢,並且選擇不是很有用,因為它可能需要一段時間才能滾動數千個選項以找到您想要的選項。
更改此字段的呈現以改善頁面加載和可用性的最佳方法是什么? 我希望將select字段替換為某種按鈕以啟動搜索表單彈出窗口,或者通過Ajax搜索關鍵字以查找要關聯的特定用戶的Id的文本字段。 管理員是否有類似內置的內容,或者我是否必須從頭開始編寫?
將raw_id_fields
添加到模型中僅顯示ID而不是下拉列表。
您可以使用Django的少數自動完成應用程序之一。 在Django Packages查看它們。
還有django-extensions ,它們具有適合您需求的ForeignKeyAutocompleteAdmin
。
你是對的,Cerin,減速的原因是因為Django用太多選項填充<select>
元素。 您可能希望使用自動完成元素。
有趣的是,Django 2.0在管理站點上引入了一個名為autocomplete_fields
的新功能,我認為在這種情況下你會覺得很有用。 它使用AJAX。
class ExampleAdmin(models.ModelAdmin):
autocomplete_fields = ['example_field_user']
另一種選擇是添加readonly_fields
而不是raw_id_fields
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.