我是清风,在新课培训学习python,在it道路只有不断学习,才能越走越远,一些有关于python的django的一些遇到的基本操作报错问题,分享一下:
models报错__str__ returned non-string (type tuple)
#自己的源码
class Score(models.Model):
sno = models.ForeignKey(Student, on_delete=models.CASCADE, verbose_name='成绩编号')
cno = models.ForeignKey(Course, on_delete=models.CASCADE, verbose_name='课程编号')
degree = models.FloatField(verbose_name='成绩')
class Meta:
db_table = 'score'
verbose_name_plural = '成绩列表'
def __str__(self):
return self.degree
#在django运行的时候,网页插入数据保存的时候,保存不成功,
#然后在cmd界面的报错__str__ returned non-string (type tuple)
#这里找了许久的问题,结果只要在__str__这里改一下就保存成功了
def __str__(self):
return str(self.degree)
插入数据库数据时的报错django.db.utils.OperationalError: (1366, "Incorrect string value: '\\xE4\\xBF\\xAE\\xE6\\x94\\xB9...' for column 'message' at row 1"):
(1)这个问题也找了半天,结果发现是在创建MySQL的database的时候没有进行utf8的编码造成的;
-- 查看database的编码格式
show create database books;
-- 如果编码格式不是utf8,更改格式
alter database books default character set utf8 collate utf8_general_ci;
更改格式后还是有问题,就要删除之前产生的0001_intial.py文件,在数据库里面也要操作;
-- 这里为了直接方便,没有在这个database里面创建其他什么文件
drop database books;
-- 后面直接创建utf8格式的database
create database if not exists books default charset utf8 collate utf8_general_ci;
-- 或者
create database books charset='utf8';
这样问题就ok了!
写在结尾:暂时先分享关于django的报错就这么多吧,希望大家都在学习过程中有所收获,拿到自己满意的兼职和offer。感谢新课,感谢九歌老师,如需获取更多资料,可以关注新课公众号,文章同步在新课官方微信公众号,关注公众号,后台自动回复获取代码笔记资料