1、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;",
},
}
}
2、django admin 页面全部中文化( 模型类数据中文化)
# setting 可以使admin管理页面中文化
LANGUAGE_CODE = 'zh-Hans'
现在要使 模型类数据字段也展示中文,即上图紫框内object改成中文字段,解决办法:
①类中添加 __unicode__方法无效
②添加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)
3、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)
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 = '人员管理' #可以重置表的名字:
添加:verbose_name,同时 __unicode__ 改为 __str__
# 在Python3中使用 def __str__(self):
6、Django Admin 录入中文错误解决办法
django.db.utils.InternalError: (1366, "Incorrect string value: '\\xE5\\xAE\\x85\\xE5\\xB1\\x85...' for column 'name' at row 1")
解决办法:
百度查询的修改数据库的方法等,django setting等配置修改等,都试了各种报错。
最终决定删了数据库,重新导入相关表
中文插入正常。