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代码制作configure文件示例
Jul 28 Python
Python2.x和3.x下maketrans与translate函数使用上的不同
Apr 13 Python
Python实现的数据结构与算法之快速排序详解
Apr 22 Python
Python中使用多进程来实现并行处理的方法小结
Aug 09 Python
python绘制简单折线图代码示例
Dec 19 Python
Matplotlib 生成不同大小的subplots实例
May 25 Python
python+influxdb+shell编写区域网络状况表
Jul 27 Python
Python列表删除元素del、pop()和remove()的区别小结
Sep 11 Python
详细分析Python可变对象和不可变对象
Jul 09 Python
Python hashlib和hmac模块使用方法解析
Dec 08 Python
python工具——Mimesis的简单使用教程
Jan 16 Python
Pytorch中TensorBoard及torchsummary的使用详解
May 12 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初学者的8点有效建议
2010/11/20 PHP
php中日期加减法运算实现代码
2011/12/08 PHP
PHP中获取时间的下一周下个月的方法
2014/03/18 PHP
学习php设计模式 php实现模板方法模式
2015/12/08 PHP
php检查函数必传参数是否存在的实例详解
2017/08/28 PHP
Prototype Hash对象 学习
2009/07/19 Javascript
Jquery 扩展方法
2010/05/06 Javascript
如何使用jQuery来处理图片坏链具体实现步骤
2013/05/02 Javascript
javascript检查表单数据是否改变的方法
2013/07/30 Javascript
创建你的第一个AngularJS应用的方法
2015/06/16 Javascript
全面介绍javascript实用技巧及单竖杠
2016/07/18 Javascript
前端自动化开发之Node.js的环境搭建教程
2017/04/01 Javascript
使用vue的transition完成滑动过渡的示例代码
2018/06/25 Javascript
jQuery轮播图实例详解
2018/08/15 jQuery
详解Vue.js中引入图片路径的几种方式
2019/06/17 Javascript
vue开发移动端底部导航条功能
2020/04/08 Javascript
vue.js+element 默认提示中英文操作
2020/11/11 Javascript
详解Vue3 Teleport 的实践及原理
2020/12/02 Vue.js
python编码最佳实践之总结
2016/02/14 Python
python中异常报错处理方法汇总
2016/11/20 Python
python select.select模块通信全过程解析
2017/09/20 Python
python利用smtplib实现QQ邮箱发送邮件
2020/05/20 Python
Python获取时间范围内日期列表和周列表的函数
2019/08/05 Python
pytorch 共享参数的示例
2019/08/17 Python
Timberland美国官网:全球领先的户外品牌
2016/08/15 全球购物
工商学院毕业生个人自我评价
2013/09/19 职场文书
美工的岗位职责
2013/11/14 职场文书
自主招生自荐信指南
2014/02/04 职场文书
中餐厅主管的职责范文
2014/02/04 职场文书
安全生产责任书范本
2014/04/15 职场文书
安全生产一岗双责责任书
2014/07/28 职场文书
“三支一扶”支教教师思想汇报
2014/09/13 职场文书
村主任群众路线个人对照检查材料
2014/09/26 职场文书
Java 将PPT幻灯片转为HTML文件的实现思路
2021/06/11 Java/Android
低门槛开发iOS、Android、小程序应用的前端框架详解
2021/10/16 Javascript
MySQL优化常用的19种有效方法(推荐!)
2022/03/17 MySQL