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发送和接收邮件
Sep 27 Python
20招让你的Python飞起来!
Sep 27 Python
用Python将IP地址在整型和字符串之间轻松转换
Mar 22 Python
Python SQLite3数据库日期与时间常见函数用法分析
Aug 14 Python
python脚本作为Windows服务启动代码详解
Feb 11 Python
python导入模块交叉引用的方法
Jan 19 Python
详解安装mitmproxy以及遇到的坑和简单用法
Jan 21 Python
Python3+Appium安装使用教程
Jul 05 Python
Python DataFrame一列拆成多列以及一行拆成多行
Aug 06 Python
python删除某个目录文件夹的方法
May 26 Python
如何利用pycharm进行代码更新比较
Nov 04 Python
Prometheus开发中间件Exporter过程详解
Nov 30 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去除HTML标签实例
2013/11/06 PHP
使用PHP连接多种数据库的实现代码(mysql,access,sqlserver,Oracle)
2016/12/21 PHP
PHP实现限制IP访问的方法
2017/04/20 PHP
javascript 操作cookies及正确使用cookies的属性
2009/10/15 Javascript
基于JQuery的类似新浪微博展示信息效果的代码
2012/07/23 Javascript
javascript 保存文件到本地实现方法
2012/11/29 Javascript
jquery dialog open后,服务器端控件失效的快速解决方法
2013/12/19 Javascript
jQuery实现购物车多物品数量的加减+总价计算
2014/06/06 Javascript
使用node.js 获取客户端信息代码分享
2014/11/26 Javascript
bootstrap实现弹窗和拖动效果
2016/01/03 Javascript
JavaScript设计模式初探
2016/01/07 Javascript
JavaScript实现弹出模态窗体并接受传值的方法
2016/02/12 Javascript
js 判断一组日期是否是连续的简单实例
2016/07/11 Javascript
jQuery购物网页经典制作案例
2016/08/19 Javascript
Vuejs第十二篇之动态组件全面解析
2016/09/09 Javascript
基于jQuery的checkbox全选问题分析
2016/11/18 Javascript
深入理解Angularjs中的$resource服务
2016/12/31 Javascript
详解jquery validate实现表单验证 (正则表达式)
2017/01/18 Javascript
深入理解AngularJs-scope的脏检查(一)
2017/06/19 Javascript
简单谈谈原生js的math对象
2017/06/27 Javascript
layui使用form表单实现post请求页面跳转的方法
2019/09/14 Javascript
layui 数据表格+分页+搜索+checkbox+缓存选中项数据的方法
2019/09/21 Javascript
js实现上传图片并显示图片名称
2019/12/18 Javascript
深入解析Python设计模式编程中建造者模式的使用
2016/03/02 Python
Python 的内置字符串方法小结
2016/03/15 Python
TensorFlow模型保存和提取的方法
2018/03/08 Python
python实现守护进程、守护线程、守护非守护并行
2018/05/05 Python
python中update的基本使用方法详解
2019/07/17 Python
Django将默认的SQLite更换为MySQL的实现
2019/11/18 Python
通过实例解析Python文件操作实现步骤
2020/09/21 Python
TripAdvisor日本:全球领先的旅游网站
2019/02/14 全球购物
中国梦的演讲稿
2014/01/08 职场文书
协议书格式
2014/04/23 职场文书
机关驾驶员违规检讨书
2014/09/13 职场文书
党员自我评议对照检查材料
2014/09/27 职场文书
2019行政前台转正申请书范文3篇
2019/08/15 职场文书