天天看點

django admin 配置

1、Admin 背景添加資料,添加完後跳至此頁報錯,但是資料确實添加上了

django admin 配置

解決辦法:

 init_command屬性改變:本質上是django_admin_log 外鍵引用到  auth_user 裡面 id  

DATABASES = {

    'default': {

        # 'ENGINE': 'django.db.backends.sqlite3',

        # 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),

        'ENGINE': 'django.db.backends.mysql',  # 或者使用 mysql.connector.django django.db.backends.mysql

        'NAME': 'python_sql',

        'USER': 'zjl',

        'PASSWORD': 'zjl',

        'HOST':'127.0.0.1',

        'PORT':'3306',

        'OPTIONS':{

            # 'init_command':"SET sql_mode='STRICT_TRANS_TABLES'",

            'charset':'utf8mb4',

            "init_command": "SET foreign_key_checks = 0;", 

        },

    }

}
           
django admin 配置

2、django admin 頁面全部中文化( 模型類資料中文化)

# setting  可以使admin管理頁面中文化

LANGUAGE_CODE = 'zh-Hans'
           

現在要使 模型類資料字段也展示中文,即上圖紫框内object改成中文字段,解決辦法:

①類中添加 __unicode__方法無效

django admin 配置

②添加list_display 清單字段的方法,即可成功

# admin.py 

class ArticleAdmin(admin.ModelAdmin):

    list_display = ('id', 'title',"content", 'pub_date', 'update_time',)



admin.site.register(Article, ArticleAdmin)



admin.site.register(BioDrug)

admin.site.register(Entry)

admin.site.register(Author)

admin.site.register(Blog)

admin.site.register(Person)

admin.site.register(Catinfo)
           
django admin 配置

3、django admin 頁面中文亂碼,資料庫中文亂碼

django admin 配置
django admin 配置

解決辦法:

①資料庫進行utf8設定

bug  mysql中文亂碼

4、django admin 在清單顯示與字段相關的其它内容

admin.py 檔案添加ArticleAdmin類,聲明要顯示的字段

class ArticleAdmin(admin.ModelAdmin):

    list_display = ('id', 'title',"content", 'pub_date', 'update_time',)


admin.site.register(Article, ArticleAdmin)
           
django admin 配置
django admin 配置

5、django admin 清單中文展示

class Person(models.Model):

    name = models.CharField(max_length=30,verbose_name = "姓名")

    age = models.IntegerField()



    def __unicode__(self):

        return self.name



    class Meta:

        verbose_name_plural = '人員管理'    #可以重置表的名字:
           
django admin 配置

添加:verbose_name,同時 __unicode__  改為 __str__

# 在Python3中使用 def __str__(self):

django admin 配置
django admin 配置

6、Django Admin 錄入中文錯誤解決辦法

django admin 配置

django.db.utils.InternalError: (1366, "Incorrect string value: '\\xE5\\xAE\\x85\\xE5\\xB1\\x85...' for column 'name' at row 1")

解決辦法:

百度查詢的修改資料庫的方法等,django  setting等配置修改等,都試了各種報錯。

最終決定删了資料庫,重新導入相關表

中文插入正常。