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 相关文章推荐
如何解决django配置settings时遇到Could not import settings 'conf.local'
Nov 18 Python
Python利用字典将两个通讯录文本合并为一个文本实例
Jan 16 Python
Python sorted函数详解(高级篇)
Sep 18 Python
Python分布式进程中你会遇到的问题解析
May 28 Python
python日期相关操作实例小结
Jun 24 Python
django搭建项目配置环境和创建表过程详解
Jul 22 Python
Python3.7黑帽编程之病毒篇(基础篇)
Feb 04 Python
pycharm内无法import已安装的模块问题解决
Feb 12 Python
Pytorch .pth权重文件的使用解析
Feb 14 Python
浅析python表达式4+0.5值的数据类型
Feb 26 Python
IntelliJ 中配置 Anaconda的过程图解
Jun 01 Python
pandas数据处理之绘图的实现
Jun 15 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
DIY实用性框形天线
2021/03/02 无线电
解析yii数据库的增删查改
2013/06/20 PHP
php使用json_encode对变量json编码
2014/04/07 PHP
PHP实现QQ快速登录的方法
2016/09/28 PHP
js调试工具 Javascript Debug Toolkit 2.0.0版本发布
2008/12/02 Javascript
JavaScript 无符号右移运算符
2009/04/17 Javascript
JavaScript 拾漏补遗
2009/12/27 Javascript
jQuery Tools tab使用介绍
2012/07/14 Javascript
30分钟就入门的正则表达式基础教程
2013/02/25 Javascript
js实现iGoogleDivDrag模块拖动层拖动特效的方法
2015/03/04 Javascript
使用canvas实现仿新浪微博头像截取上传功能
2015/09/02 Javascript
JavaScript、tab切换完整版(自动切换、鼠标移入停止、移开运行)
2016/01/05 Javascript
JS实现根据密码长度显示安全条功能
2017/03/08 Javascript
js 两数组去除重复数值的实例
2017/12/06 Javascript
实例学习JavaScript读取和写入cookie
2018/01/29 Javascript
jQuery实现输入框的放大和缩小功能示例
2018/07/21 jQuery
使用RN Animated做一个“添加购物车”动画的方法
2018/09/12 Javascript
Vue中使用better-scroll实现轮播图组件
2020/03/07 Javascript
jQuery实现飞机大战小游戏
2020/07/05 jQuery
WebPack工具运行原理及入门教程
2020/12/02 Javascript
react项目从新建到部署的实现示例
2021/02/19 Javascript
[03:02]辉夜杯主赛事第二日 每日之星
2015/12/27 DOTA
[01:06:19]DOTA2-DPC中国联赛定级赛 LBZS vs SAG BO3第二场 1月8日
2021/03/11 DOTA
python 生成目录树及显示文件大小的代码
2009/07/23 Python
python网络编程示例(客户端与服务端)
2014/04/24 Python
Python使用redis pool的一种单例实现方式
2016/04/16 Python
解决Python2.7中IDLE启动没有反应的问题
2018/11/30 Python
Python获取网段内ping通IP的方法
2019/01/31 Python
pandas实现excel中的数据透视表和Vlookup函数功能代码
2020/02/14 Python
基于 HTML5 WebGL 实现的医疗物流系统
2019/10/08 HTML / CSS
英国奢侈品网站:MatchesFashion
2016/12/16 全球购物
4s店机修工岗位职责
2013/12/20 职场文书
毕业设计说明书
2014/05/07 职场文书
理发店策划方案
2014/06/05 职场文书
作风建设剖析材料
2014/10/06 职场文书
在NumPy中深拷贝和浅拷贝相关操作的定义和背后的原理
2022/04/14 Python