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 相关文章推荐
linux系统使用python监测系统负载脚本分享
Jan 15 Python
Python利用ansible分发处理任务
Aug 04 Python
Python在线运行代码助手
Jul 15 Python
Python入门_浅谈逻辑判断与运算符
May 16 Python
Pycharm设置去除显示的波浪线方法
Oct 28 Python
Python小进度条显示代码
Mar 05 Python
pyqt5 comboBox获得下标、文本和事件选中函数的方法
Jun 14 Python
django数据库自动重连的方法实例
Jul 21 Python
Django REST框架创建一个简单的Api实例讲解
Nov 05 Python
termux中matplotlib无法显示中文问题的解决方法
Jan 11 Python
用Python实现屏幕截图详解
Jan 22 Python
Python可视化神器pyecharts之绘制箱形图
Jul 07 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
ThinkPHP与PHPExcel冲突解决方法
2011/08/08 PHP
PHP生成二维码的两个方法和实例
2014/07/01 PHP
php将html转成wml的WAP标记语言实例
2015/07/08 PHP
Smarty模板变量与调节器实例详解
2019/07/20 PHP
yii框架结合charjs统计上一年与当前年数据的方法示例
2020/04/04 PHP
javascript 内存回收机制理解
2011/01/17 Javascript
JavaScript转换农历类实现及调用方法
2013/01/27 Javascript
指定区域的图片自动按比例缩小的js代码(防止页面被图片撑破)
2014/02/21 Javascript
NodeJS Express框架中处理404页面一个方式
2014/05/28 NodeJs
js实现瀑布流的三种方式比较
2020/06/28 Javascript
微信小程序 教程之模板
2016/10/18 Javascript
JS+html5制作简单音乐播放器
2020/09/13 Javascript
AngularJS ionic手势事件的使用总结
2017/08/09 Javascript
vue单页面实现当前页面刷新或跳转时提示保存
2018/11/02 Javascript
JavaScript时间日期操作实例小结【5个示例】
2018/12/22 Javascript
js实现web调用摄像头 js截取视频画面
2019/04/21 Javascript
JS+DIV实现拖动效果
2020/02/11 Javascript
浅谈JavaScript 声明提升
2020/09/14 Javascript
[01:05]主宰至宝剑心之遗
2017/03/16 DOTA
[02:49]DOTA2完美大师赛首日观众采访
2017/11/23 DOTA
windows下安装python paramiko模块的代码
2013/02/10 Python
在Python的Flask框架中使用日期和时间的教程
2015/04/21 Python
详解Python中的各种函数的使用
2015/05/24 Python
Python 安装setuptools和pip工具操作方法(必看)
2017/05/22 Python
为什么你还不懂得怎么使用Python协程
2019/05/13 Python
python opencv minAreaRect 生成最小外接矩形的方法
2019/07/01 Python
Django多数据库的实现过程详解
2019/08/01 Python
Python产生一个数值范围内的不重复的随机数的实现方法
2019/08/21 Python
Python发送邮件实现基础解析
2020/08/14 Python
Window10上Tensorflow的安装(CPU和GPU版本)
2020/12/15 Python
四好少年事迹材料
2014/01/12 职场文书
学校卫生检查制度
2014/02/03 职场文书
工程售后服务方案
2014/06/08 职场文书
2015年元旦演讲稿
2014/09/12 职场文书
2016年学校十一国庆节活动总结
2016/04/01 职场文书
CSS3点击按钮圆形进度打钩效果的实现代码
2021/03/30 HTML / CSS