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学习笔记:字典的使用示例详解
Jun 13 Python
Python连接mysql数据库的正确姿势
Feb 03 Python
Python基于hashlib模块的文件MD5一致性加密验证示例
Feb 10 Python
Python操作MySQL模拟银行转账
Mar 12 Python
python3获取当前文件的上一级目录实例
Apr 26 Python
浅谈python多进程共享变量Value的使用tips
Jul 16 Python
Python实现的企业粉丝抽奖功能示例
Jul 26 Python
python编写简单端口扫描器
Sep 04 Python
Win10+GPU版Pytorch1.1安装的安装步骤
Sep 27 Python
python实现从ftp上下载文件的实例方法
Jul 19 Python
Python根据字典的值查询出对应的键的方法
Sep 30 Python
Pytorch数据读取之Dataset和DataLoader知识总结
May 23 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 Class&amp;Object -- PHP 自排序二叉树的深入解析
2013/06/25 PHP
学习php设计模式 php实现合成模式(composite)
2015/12/08 PHP
Extjs学习笔记之九 数据模型(上)
2010/01/11 Javascript
jQuery 1.5最新版本的改进细节分析
2011/01/19 Javascript
getElementByIdx_x js自定义getElementById函数
2012/01/24 Javascript
php图像生成函数之间的区别分析
2012/12/06 Javascript
关于ExtJS4.1:快捷键支持的问题
2013/04/24 Javascript
JQuery控制radio选中和不选中方法总结
2015/04/15 Javascript
jQuery结合CSS制作漂亮的select下拉菜单
2015/05/03 Javascript
举例详解AngularJS中ngShow和ngHide的使用方法
2015/06/19 Javascript
纯javascript实现分页(两种方法)
2015/08/26 Javascript
JS实现的几个常用算法
2016/11/12 Javascript
js实现显示手机号码效果
2017/03/09 Javascript
前端构建工具之gulp的配置与搭建详解
2017/06/12 Javascript
vue项目使用axios发送请求让ajax请求头部携带cookie的方法
2018/09/26 Javascript
学前端,css与javascript重难点浅析
2020/06/11 Javascript
vue2.0 解决抽取公用js的问题
2020/07/31 Javascript
js实现特别简单的钟表效果
2020/09/14 Javascript
Python实现的HMacMD5加密算法示例
2018/04/03 Python
详解Python中的分组函数groupby和itertools)
2018/07/11 Python
对python中dict和json的区别详解
2018/12/18 Python
python 并发编程 非阻塞IO模型原理解析
2019/08/20 Python
Python shelve模块实现解析
2019/08/28 Python
通过 Python 和 OpenCV 实现目标数量监控
2020/01/05 Python
pycharm使用技巧之自动调整代码格式总结
2020/11/04 Python
python批量合成bilibili的m4s缓存文件为MP4格式 ver2.5
2020/12/01 Python
HTML5调用手机发短信和打电话功能
2020/04/29 HTML / CSS
伦敦著名的运动鞋综合商店:Footpatrol
2019/03/25 全球购物
联想印度官方网上商店:Lenovo India
2019/08/24 全球购物
某公司Java工程师面试题笔试题
2016/03/27 面试题
酒吧创业计划书
2014/01/18 职场文书
个人担保书范文
2014/05/20 职场文书
群众路线查摆问题整改措施思想汇报
2014/10/10 职场文书
2014乡党委副书记党建工作汇报材料
2014/11/02 职场文书
2014年工会工作总结
2014/11/12 职场文书
小学体育教学随笔
2015/08/14 职场文书