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 相关文章推荐
使用Mixin设计模式进行Python编程的方法讲解
Jun 21 Python
Python基础教程之tcp socket编程详解及简单实例
Feb 23 Python
pycharm使用matplotlib.pyplot不显示图形的解决方法
Oct 28 Python
pycharm中成功运行图片的配置教程
Oct 28 Python
python 实现将txt文件多行合并为一行并将中间的空格去掉方法
Dec 20 Python
selenium python 实现基本自动化测试的示例代码
Feb 25 Python
Python实现的栈、队列、文件目录遍历操作示例
May 06 Python
Python使用import导入本地脚本及导入模块的技巧总结
Aug 07 Python
在tensorflow中实现屏蔽输出的log信息
Feb 04 Python
python ImageDraw类实现几何图形的绘制与文字的绘制
Feb 26 Python
Python爬虫后获取重定向url的两种方法
Jan 19 Python
pycharm代码删除恢复的方法
Jun 26 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
Mysql和网页显示乱码解决方法集锦
2008/03/27 PHP
php无限遍历目录示例
2014/02/21 PHP
ThinkPHP中U方法的使用浅析
2014/06/13 PHP
php简单实现多字节字符串翻转的方法
2015/03/31 PHP
PHP的APC模块实现上传进度条
2015/10/27 PHP
php实现购物车功能(以大苹果购物网为例)
2017/03/09 PHP
Laravel+Intervention实现上传图片功能示例
2019/07/09 PHP
教您去掉ie网页加载进度条的方法
2010/12/09 Javascript
Array.prototype.concat不是通用方法反驳[译]
2012/09/20 Javascript
你一定会收藏的Nodejs代码片段
2016/02/04 NodeJs
BootStrap树状图显示功能
2016/11/24 Javascript
JS打开摄像头并截图上传示例
2017/02/18 Javascript
Vuex和前端缓存的整合策略详解
2017/05/09 Javascript
JS中将多个逗号替换为一个逗号的实现代码
2017/06/23 Javascript
详解如何提高 webpack 构建 Vue 项目的速度
2017/07/03 Javascript
bootstrap可编辑下拉框jquery.editable-select
2017/10/12 jQuery
vue使用 better-scroll的参数和方法详解
2018/01/25 Javascript
Express本地测试HTTPS的示例代码
2018/06/06 Javascript
Vue项目部署的实现(阿里云+Nginx代理+PM2)
2019/03/26 Javascript
jQuery实现高度灵活的表单验证功能示例【无UI】
2020/04/30 jQuery
浅析AST抽象语法树及Python代码实现
2016/06/06 Python
python 计算两个日期相差多少个月实例代码
2017/05/24 Python
PyQt5每天必学之滑块控件QSlider
2018/04/20 Python
详解Python函数式编程—高阶函数
2019/03/29 Python
python 已知一个字符,在一个list中找出近似值或相似值实现模糊匹配
2020/02/29 Python
python让函数不返回结果的方法
2020/06/22 Python
Python Web项目Cherrypy使用方法镜像
2020/11/05 Python
python 元组和列表的区别
2020/12/30 Python
基于Html5 canvas实现裁剪图片和马赛克功能及又拍云上传图片 功能
2019/07/09 HTML / CSS
美国珠宝网上商店:Jeulia
2016/09/01 全球购物
英国最大的专业户外零售商:Mountain Warehouse
2018/06/06 全球购物
在校生党员自我评价
2013/09/25 职场文书
初任培训自我鉴定
2013/10/07 职场文书
宪法宣传周工作方案
2014/05/26 职场文书
评估“风险”创业计划的几大要点
2019/08/12 职场文书
python爬虫selenium模块详解
2021/03/30 Python