天天看点

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等配置修改等,都试了各种报错。

最终决定删了数据库,重新导入相关表

中文插入正常。