django修改models重建数据库的操作


Posted in Python onMarch 31, 2020

第二次修改models.py以后再次

python manage.py makemigrations

提示如下

You are trying to add a non-nullable field 'address' to xc_users without a default; we can't do that (the database needs something to populate existing rows). Please select a fix: 1) Provide a one-off default now (will be set on all existing rows) 2) Qu

于是删除数据库表,继续报相同的错误

makemigration需要指定名称,然后migrate才能识别两次<span style="font-family: Arial, Helvetica, sans-serif;">makemigrations的不同</span>

python manage.py makemigrations --name sqlname

然后再执行:

python manage.py migrate

成功解决问题!

补充知识:django rest framework如何一次性序列化同一个数据库下多个model表数据在一个json页面下

在django项目中,首先我们要安装django-rest-mutiple-models

pip install django-rest-multiple-models

然后在setting配置中配置一下APP

INSTALLED_APPS = (
 ....
 'drf_multiple_model',
)

在我们的views视图函数下引入

from drf_multiple_model.views import ObjectMultipleModelAPIView

如下两个模型

class Play(models.Model):
 genre = models.CharField(max_length=100)
 title = models.CharField(max_length=200)
 pages = models.IntegerField()
 
class Poem(models.Model):
 title = models.CharField(max_length=200)
 style = models.CharField(max_length=100)
 lines = models.IntegerField()
 stanzas = models.IntegerField()

序列化如下

class PlaySerializer(serializers.ModelSerializer):
 class Meta:
 model = Play
 fields = ('genre','title','pages')
 
class PoemSerializer(serializers.ModelSerializer):
 class Meta:
 model = Poem
 fields = ('title','stanzas')

views中我们可以这么写,继承一个ObjectMutipleModelAPIView

from drf_multiple_model.views import ObjectMultipleModelAPIView
 
class TextAPIView(ObjectMultipleModelAPIView):
 querylist = [
 {'queryset': Play.objects.all(), 'serializer_class': PlaySerializer},
 {'queryset': Poem.objects.filter(style='Sonnet'), 'serializer_class': PoemSerializer},
 ....
 ]

如果我们使用的url是router,那这里我们就应该继承ObjectMutipleModelAPIViewset

具体的引入

from drf_multiple_model.viewsets import ObjectMultipleModelAPIViewSet

DRF页面的显示效果如下

{
 "Play" : [
 {"genre": "Comedy", "title": "A Midsummer Night"s Dream", "pages": 350},
 {"genre": "Tragedy", "title": "Romeo and Juliet", "pages": 300},
 ....
 ],
 "Poem" : [
 {"title": "Shall I compare thee to a summer"s day", "stanzas": 1},
 {"title": "As a decrepit father takes delight", "stanzas": 1},
 ....
 ],
}

效果就是能在一个json页面下序列化出多个不同的model数据

我们还可以对每个表的数据进行分页

from drf_multiple_model.pagination import MultipleModelLimitOffsetPagination

views下可以这么写

class LimitPagination(MultipleModelLimitOffsetPagination):
default_limit = 10

意思是每个model默认显示前十条数据

如果前端需要,url上可以加上limit=5,自定义默认显示前五条数据

更多详细内容,github搜索DjangoRestMultipleModels

以上这篇django修改models重建数据库的操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python的多态性实例分析
Jul 07 Python
浅谈Python的异常处理
Jun 19 Python
Python max内置函数详细介绍
Nov 17 Python
PyQt5每天必学之切换按钮
Aug 20 Python
python3实现钉钉消息推送的方法示例
Mar 14 Python
python自动结束mysql慢查询会话的实例代码
Oct 27 Python
Pytorch to(device)用法
Jan 08 Python
基于python实现数组格式参数加密计算
Apr 21 Python
Python趣味入门教程之循环语句while
Aug 26 Python
Python操作Word批量生成合同的实现示例
Aug 28 Python
关于Python 解决Python3.9 pandas.read_excel(‘xxx.xlsx‘)报错的问题
Nov 28 Python
python中pycryto实现数据加密
Apr 29 Python
Python写捕鱼达人的游戏实现
Mar 31 #Python
Django 多对多字段的更新和插入数据实例
Mar 31 #Python
基于python爬取有道翻译过程图解
Mar 31 #Python
django实现将修改好的新模型写入数据库
Mar 31 #Python
Python urlencode和unquote函数使用实例解析
Mar 31 #Python
Python响应对象text属性乱码解决方案
Mar 31 #Python
django执行数据库查询之后实现返回的结果集转json
Mar 31 #Python
You might like
php中修改浏览器的User-Agent来伪装你的浏览器和操作系统
2011/07/29 PHP
php 使用 __call实现重载功能示例
2019/11/18 PHP
一个加载js文件的小脚本
2007/06/28 Javascript
js类中获取外部函数名的方法
2007/08/19 Javascript
获取当前网页document.url location.href区别总结
2008/05/10 Javascript
javascript 用记忆函数快速计算递归函数
2010/03/15 Javascript
javascript 星级评分效果(手写)
2012/12/24 Javascript
jQuery实现类似淘宝购物车全选状态示例
2013/06/26 Javascript
浅析JavaScript原型继承的陷阱
2013/12/03 Javascript
解析Node.js基于模块和包的代码部署方式
2016/02/16 Javascript
jQuery常见面试题之DOM操作详析
2017/07/05 jQuery
解决vue+element 键盘回车事件导致页面刷新的问题
2018/08/25 Javascript
详解使用jest对vue项目进行单元测试
2018/09/07 Javascript
10个最受欢迎的 JavaScript框架(推荐)
2019/04/24 Javascript
[04:44]DOTA2英雄梦之声_第12期_矮人直升机
2014/06/21 DOTA
[57:22]2018DOTA2亚洲邀请赛 4.7总决赛 LGD vs Mineski 第五场
2018/04/10 DOTA
[01:00:10]完美世界DOTA2联赛PWL S2 FTD vs Inki 第二场 11.21
2020/11/24 DOTA
跟老齐学Python之用while来循环
2014/10/02 Python
python 第三方库的安装及pip的使用详解
2017/05/11 Python
Python实现一个转存纯真IP数据库的脚本分享
2017/05/21 Python
python快排算法详解
2019/03/04 Python
Python使用matplotlib绘制圆形代码实例
2020/05/27 Python
python在一个范围内取随机数的简单实例
2020/08/16 Python
HTML5的革新 结构之美
2011/06/20 HTML / CSS
将SVG图引入到HTML页面的实现
2019/09/20 HTML / CSS
JENNIFER BEHR官网:各种耳环和发饰
2020/06/07 全球购物
学生实习自我鉴定
2013/10/11 职场文书
茶叶店创业计划书范文
2014/01/19 职场文书
统计岗位职责
2014/02/21 职场文书
《那片绿绿的爬山虎》教学反思
2014/02/27 职场文书
5s推行计划书
2014/05/06 职场文书
会计专业毕业生自荐书
2014/06/25 职场文书
邻里守望志愿服务活动方案
2014/08/15 职场文书
个人借款协议书范本
2014/11/17 职场文书
CSS实现漂亮的时钟动画效果的实例代码
2021/03/30 HTML / CSS
对讲机的最大通讯距离是多少
2022/02/18 无线电