django的 models报错__str__ returned non-string (type tuple)和插入数据时django.db.utils.OperationalError:

我是清风,在新课培训学习python,在it道路只有不断学习,才能越走越远,一些有关于python的django的一些遇到的基本操作报错问题,分享一下:

  1. 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)
  1. 插入数据库数据时的报错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。感谢新课,感谢九歌老师,如需获取更多资料,可以关注新课公众号,文章同步在新课官方微信公众号,关注公众号,后台自动回复获取代码笔记资料

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值