簡體   English   中英

提高管理員中Django ForeignKey字段的性能

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM