當前位置:成語大全網 - 書法字典 - 如何打開django-xadmin背景列表頁面的復選框?

如何打開django-xadmin背景列表頁面的復選框?

1.Django Admin不適合最終用戶。

Django admin是為管理員設計的,而不是最終用戶。Django admin的存在是為了方便管理員添加、修改和刪除數據以及管理站點任務。

2.列表顯示

如上圖,因為默認顯示的模型文本是xxx對象,所以在管理員列表頁面中也默認顯示xxx對象。如果想顯示更多有用的信息,我們可以進行如下設置:

為模型編寫__unicode__()方法。

如果希望model在列表頁面中顯示更多的項目,需要使用list_display。

__unicode()__示例:

# models.py

從django.db導入模型

類文章(模型。型號):

標題=模型。CharField(max_length=100)

slug =模型。CharField(max_length=100)

內容=模型。文本字段()

is_published = models。BooleanField(默認值=False)

def __unicode__(self):

返回自我標題

#管理. py

來自django.contrib導入管理

從。模型導入文章

管理員網站註冊(文章)

結果:

如果要顯示其他項目:

#管理. py

來自django.contrib導入管理

從。模型導入文章

類ArticleAdmin(admin。ModelAdmin):

list_display = ('title ',' is_published ')

admin.site.register(文章

結果:

3.為ModelAdmin添加操作。

我們可以向ModelAdmin添加方法或函數,使管理界面更適合我們的需要。

比如我們想在管理界面顯示壹個顯式的url,但是當我們在模型中定義get_absolute_url()方法的時候,django admin給了我們壹個與我們默認想要的URL完全不同的URL。所以我們可以通過以下方法定義URL:

#管理. py

來自django.contrib導入管理

從django.core.urlresolvers反向導入

從django.utils.html導入格式_html

從。模型導入文章

類ArticleAdmin(admin。ModelAdmin):

list_display = ('title ',' is_published ',)

readonly_fields = ('show_url ',)

def show_url(自身,實例):

url = reverse('article_detail ',kwargs={'pl': instance.pk})

response = format_html(" " " " ",url)

返回響應

Show_url.short_description = u "文章預覽"

#顯示HTML標簽

#不要為用戶提交的數據設置此項!

show_url.allow_tags = True

註意,allow_tags屬性的默認值為False,如果誤用會帶來安全風險。如果它被設置為真,

HTML標簽允許在管理中顯示。所以我們使用的原則是,對於用戶輸入的信息,永遠不要設置allow_tags=True。

Allow_tags=True只能在其內容由系統生成且用戶無法修改時使用。

4.不要在多用戶編輯環境中使用list_editable。

Django admin為我們提供了在列表頁面修改模型屬性的功能,方便管理員壹次修改多個屬性。如果只有壹個管理員,

這沒問題,但是在多用戶環境下,會有壹個嚴重的潛在問題,因為列表頁面提交的修改信息記錄的是位置,而不是模型的主鍵。

例如,默認情況下,文章列表頁面根據創建順序以相反的順序排列。用戶A打開文章列表頁面並開始修改它。同時,用戶B添加了壹篇新文章。這時,

當用戶A提交修改時,後續的文章信息會出現錯誤。