内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

Django解決擴(kuò)展用戶表時(shí),后臺(tái)Admin顯示密碼為明文的問(wèn)題-創(chuàng)新互聯(lián)

小生博客:http://xsboke.blog.51cto.com

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶,將通過(guò)不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名與空間、網(wǎng)頁(yè)空間、營(yíng)銷軟件、網(wǎng)站建設(shè)、恩平網(wǎng)站維護(hù)、網(wǎng)站推廣。
            -------謝謝您的參考,如有疑問(wèn),歡迎交流

Django解決當(dāng)擴(kuò)展用戶表時(shí),用戶繼承AbstractUser后,后臺(tái)Admin會(huì)顯示密碼為明文的問(wèn)題

先看項(xiàng)目列表
Django解決擴(kuò)展用戶表時(shí),后臺(tái)Admin顯示密碼為明文的問(wèn)題

1、今天在寫一個(gè)擴(kuò)展Django默認(rèn)的用戶表功能時(shí),遇到了一個(gè)問(wèn)題.
先給大家看一下我寫的,擴(kuò)展用戶表的models[apps.users.models],我是通過(guò)繼承AbstractUser進(jìn)行擴(kuò)展的(還有一種方式是引入U(xiǎn)ser表,通過(guò)外鍵的形式進(jìn)行擴(kuò)展).

注意:
請(qǐng)?jiān)趕etting配置文件中,添加如下配置,從而修改用戶表為自定義model(我app的名字為users).
       AUTH_USER_MODEL = 'users.UserProfile'
from django.db import models

from django.contrib.auth.models import AbstractUser

# Create your models here.

class UserProfile(AbstractUser):
    user = models.CharField(max_length=30, null=True, blank=True, verbose_name="用戶")
    birthday = models.DateField(null=True, blank=True, verbose_name="出生年月")
    gender = models.CharField(max_length=8, choices=(("male", u"男"), ("female", "女"),("unknown", u"未知")), default="unknown",verbose_name="性別")
    mobile = models.CharField(max_length=11,null=True, blank=True,  verbose_name="電話")

    class Meta:
        verbose_name = '用戶'
        verbose_name_plural = verbose_name

    def __str__(self):
        return self.username

2、這時(shí)候你Admin后臺(tái)就沒(méi)有之前那張用戶表了,就變成下面那個(gè)樣子了
Django解決擴(kuò)展用戶表時(shí),后臺(tái)Admin顯示密碼為明文的問(wèn)題

然后你就需要在你的users app中配置admin[apps.users.admin],就像為其他表配置admin一樣,我做了如下配置

from django.contrib import admin
from django.utils.translation import gettext_lazy

from apps.users.models import UserProfile
# Register your models here.

class UserProfileAdmin(admin.ModelAdmin):
    list_display = ('username','last_login','is_superuser','is_staff','is_active','date_joined')
    fieldsets = (
        (None,{'fields':('username','password','first_name','last_name','email')}),

        (gettext_lazy('User Information'),{'fields':('user','birthday','gender','mobile')}),

        (gettext_lazy('Permissions'), {'fields': ('is_superuser','is_staff','is_active',
                                                  'groups', 'user_permissions')}),

        (gettext_lazy('Important dates'), {'fields': ('last_login', 'date_joined')}),
    )

admin.site.register(UserProfile,UserProfileAdmin)

3、然后在后臺(tái)admin中就可以看到這張表了
Django解決擴(kuò)展用戶表時(shí),后臺(tái)Admin顯示密碼為明文的問(wèn)題

但是當(dāng)你新建用戶或者打開用戶表后發(fā)現(xiàn),密碼竟然是明文的,我試過(guò)啦,直接寫密碼是不可以的,如下圖
Django解決擴(kuò)展用戶表時(shí),后臺(tái)Admin顯示密碼為明文的問(wèn)題

4、那么密碼字段應(yīng)該是什么樣的呢,我給大家放出還未擴(kuò)展用戶表時(shí),django默認(rèn)的用戶表的圖片
Django解決擴(kuò)展用戶表時(shí),后臺(tái)Admin顯示密碼為明文的問(wèn)題

現(xiàn)在我們也需要實(shí)現(xiàn)這種效果怎么辦,我在查閱資料之后,網(wǎng)上有個(gè)用戶提供了這么個(gè)方法

from django.contrib import admin
from django.contrib.auth.admin import UserAdmin

from apps.users.models import UserProfile
# Register your models here.

admin.site.register(UserProfile, UserAdmin)

5、我嘗試了一下,這樣可以,但是有個(gè)問(wèn)題,我自定義的字段沒(méi)有在后臺(tái)顯示,如下圖:
Django解決擴(kuò)展用戶表時(shí),后臺(tái)Admin顯示密碼為明文的問(wèn)題

然后我看了一下UserAdmin的源碼(在pychram中按住Ctrl鍵,然后用鼠標(biāo)左鍵點(diǎn)擊UserAdmin,就可以看到源碼)
我們可以這樣解決,如下,通過(guò)繼承UserAdmin,然后覆蓋你想要修改的字段。

from django.contrib import admin
from django.contrib.auth.admin import UserAdmin
from django.utils.translation import gettext_lazy

from apps.users.models import UserProfile
# Register your models here.

class UserProfileAdmin(UserAdmin):
    list_display = ('username','last_login','is_superuser','is_staff','is_active','date_joined')
    fieldsets = (
        (None,{'fields':('username','password','first_name','last_name','email')}),

        (gettext_lazy('User Information'),{'fields':('user','birthday','gender','mobile')}),

        (gettext_lazy('Permissions'), {'fields': ('is_superuser','is_staff','is_active',
                                                  'groups', 'user_permissions')}),

        (gettext_lazy('Important dates'), {'fields': ('last_login', 'date_joined')}),
    )

admin.site.register(UserProfile,UserProfileAdmin)

這時(shí)候后臺(tái)就可以顯示到我們擴(kuò)展的字段了
Django解決擴(kuò)展用戶表時(shí),后臺(tái)Admin顯示密碼為明文的問(wèn)題

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

網(wǎng)站標(biāo)題:Django解決擴(kuò)展用戶表時(shí),后臺(tái)Admin顯示密碼為明文的問(wèn)題-創(chuàng)新互聯(lián)
網(wǎng)頁(yè)網(wǎng)址:http://www.rwnh.cn/article48/cseiep.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)、關(guān)鍵詞優(yōu)化網(wǎng)站營(yíng)銷、網(wǎng)站維護(hù)、移動(dòng)網(wǎng)站建設(shè)、虛擬主機(jī)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁(yè)設(shè)計(jì)公司
房产| 曲松县| 平定县| 淳化县| 潼关县| 自治县| 邹城市| 昆明市| 漯河市| 璧山县| 靖远县| 云阳县| 车险| 石柱| 丰宁| 柯坪县| 尉氏县| 翼城县| 商城县| 平邑县| 德保县| 保靖县| 茌平县| 招远市| 浮山县| 武夷山市| 宁陵县| 闽清县| 永善县| 平湖市| 巴塘县| 永靖县| 海宁市| 江阴市| 长治县| 凌云县| 资源县| 朝阳市| 临沭县| 冕宁县| 隆德县|