日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

自定义admin

發(fā)布時間:2025/3/21 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 自定义admin 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
在admin當(dāng)中可以通過繼承admin.ModelAdmin來定義類管理后臺
通過定義管理類來管理后臺的各個模塊

from django.contrib.auth.admin import UserAdmin官方用戶管理界面,有非常方便的管理方式
面向?qū)ο蟮木?#xff1a;通過繼承,來實現(xiàn)相應(yīng)的業(yè)務(wù)功能不用去研究里面具體細(xì)節(jié),因為已經(jīng)封裝好了,只去研究要實現(xiàn)的業(yè)務(wù)功能? ??

自定義model在settings里面進(jìn)行設(shè)置,自定義admin需要在注冊的時候進(jìn)行設(shè)置

修改后臺密碼
因為后臺的密碼是密文寫的,如果直接改為明文會出錯
方法一:繼承admin.ModelAdmin,修改其保存密碼的方式將后臺保存密碼進(jìn)行加密進(jìn)行保存,會出錯
方法二:繼承UserAdmin,直接修改用戶管理界面? ??

class UserAdmin(admin.ModelAdmin):
fieldsets = (
(None, {'fields': ('username', 'password')}),
(_('Personal info'), {'fields': ('first_name', 'last_name', 'email')}),
(_('Permissions'), {'fields': ('is_active', 'is_staff', 'is_superuser',
'groups', 'user_permissions')}),
(_('Important dates'), {'fields': ('last_login', 'date_joined')}),
)
add_fieldsets = (
(None, {
'classes': ('wide',),
'fields': ('username', 'password1', 'password2'),
}),
)
form = UserChangeForm
add_form = UserCreationForm
change_password_form = AdminPasswordChangeForm
list_display = ('username', 'email', 'first_name', 'last_name', 'is_staff')
list_filter = ('is_staff', 'is_superuser', 'is_active', 'groups')
search_fields = ('username', 'first_name', 'last_name', 'email')
ordering = ('username',)
filter_horizontal = ('groups', 'user_permissions',)


class UserProfileAdmin(UserAdmin):
fieldsets = (
(None, {'fields': ('email', 'password')}),
(_('Personal info'), {'fields': ('email','qq','phone')}),
(_('Permissions'), {'fields': ('is_active', 'is_staff', 'is_superuser',
'groups', 'user_permissions')}),
(_('Important dates'), {'fields': ('last_login', 'date_joined')}),
)
add_fieldsets = (
(None, {
'classes': ('wide',),
'fields': ('email', 'password1', 'password2'),
}),
)
list_display = ( 'email', 'is_staff')
list_filter = ('is_staff', 'is_superuser', 'is_active', 'groups')
ordering = ('email',)
filter_horizontal = ('groups', 'user_permissions',)





如果有沒用Pycharm自動配置admin的話,手動配置在urls.py中注釋掉from django.contrib import adminadmin.autodiscover()url(r'^admin/', include(admin.site.urls)),

INSTALLED_APPS當(dāng)中的? 'django.contrib.admin',,然后啟動runserver在此之前還需要配置數(shù)據(jù)庫,后臺管理需要創(chuàng)建數(shù)據(jù)表

from django.shortcuts import render

def index(request):
return render(request, 'index.html.',locals())


配置admin裝Django1.9時,創(chuàng)建的superuser賬號和密碼不能相同,臥槽,1.9版本的密碼要求很規(guī)范
? ??from?models?import * ??admin.site.register(User) ?在admin當(dāng)中進(jìn)行設(shè)置
models如果不加修改,以默認(rèn)選擇設(shè)置admin,還可以自定義models在admin里面進(jìn)行自定義class ArticleAdmin(admin.ModelAdmin):
fields = ('title','desc','content')

admin.site.register(Article,ArticleAdmin)如果不加后面的ArticleAdmin,就默認(rèn)的形式進(jìn)行設(shè)定fields 顯示指定字段 exclude 出了指定字段,顯示其他字段fieldsets可以對要設(shè)定的字段做一個很好的劃分,把一部分隱藏,一部分顯示list_display可以顯示指定的列list_display_links指定列可以點擊還有很多屬性,需要用的時候查閱官方文檔

Django站點管理--ModelAdmin

class AuthorAdmin(admin.ModelAdmin):list_display=('name', 'age', 'sex') #指定要顯示的字段search_fields=('name',) #指定要搜索的字段,將會出現(xiàn)一個搜索框讓管理員搜索關(guān)鍵詞list_filter = ('publication_date',) #指定列表過濾器,右邊將會出現(xiàn)一個快捷的日期過濾選項,#以方便開發(fā)人員快速地定位到想要的數(shù)據(jù),同樣你也可以指定非日期型類型的字段 date_hierarchy = 'birth' #日期型字段進(jìn)行層次劃分。ordering = ('-birth','age') #對出生日期降序排列,對年級升序fields = ('name','sex','age','birth','type') #自定義編輯表單,在編輯表單的時候 顯示哪些字段,顯示的屬性# 分組表單fieldsets = (('基本信息', {'fields': ('title', 'content', 'excerpt', 'publish_date','status', 'user', 'categories')}),('Meta Data', {'fields': ('alias', 'keywords', 'description')}),) admin.site.register(Person,AuthorAdmin
來源:?<http://www.cnblogs.com/linjiqin/p/3828563.html>?









來自為知筆記(Wiz)

轉(zhuǎn)載于:https://www.cnblogs.com/wuqingzangyue/p/5749595.html

總結(jié)

以上是生活随笔為你收集整理的自定义admin的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。