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的身份证号码自动生成程序
Aug 15 Python
Python语言实现机器学习的K-近邻算法
Jun 11 Python
Django实现快速分页的方法实例
Oct 22 Python
python将文本中的空格替换为换行的方法
Mar 19 Python
详解利用django中间件django.middleware.csrf.CsrfViewMiddleware防止csrf攻击
Oct 09 Python
Python 支付整合开发包的实现
Jan 23 Python
python tkinter canvas 显示图片的示例
Jun 13 Python
详解pandas使用drop_duplicates去除DataFrame重复项参数
Aug 01 Python
手动安装python3.6的操作过程详解
Jan 13 Python
Python3基本输入与输出操作实例分析
Feb 14 Python
Python利用逻辑回归分类实现模板
Feb 15 Python
Python的代理类实现,控制访问和修改属性的权限你都了解吗
Mar 21 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数组对比函数,存在交集则返回真,否则返回假
2011/02/03 PHP
PHP中shuffle数组值随便排序函数用法
2014/11/21 PHP
JavaScript类和继承 this属性使用说明
2010/09/03 Javascript
你必须知道的JavaScript 中字符串连接的性能的一些问题
2013/05/07 Javascript
Nodejs实现的一个简单udp广播服务器、客户端
2014/09/25 NodeJs
JavaScript的Polymer框架中dom-repeat与VM的相关操作
2015/07/29 Javascript
JS传值出现中文参数乱码的解决方法
2016/06/30 Javascript
Angular2 (RC4) 路由与导航详解
2016/09/21 Javascript
微信小程序 icon组件详细及实例代码
2016/10/25 Javascript
Javascript中关于Array.filter()的妙用详解
2016/12/04 Javascript
Bootstrap基本模板的使用和理解1
2016/12/14 Javascript
jquery ajaxfileupload异步上传插件
2017/11/21 jQuery
JS常见构造模式实例对比分析
2018/08/27 Javascript
Vue.js标签页组件使用方法详解
2019/10/19 Javascript
100行代码实现vue表单校验功能(小白自编)
2019/11/19 Javascript
vue+elementUI组件table实现前端分页功能
2020/11/15 Javascript
[01:06:39]DOTA2上海特级锦标赛主赛事日 - 1 胜者组第一轮#1Liquid VS Alliance第三局
2016/03/02 DOTA
python爬取网站数据保存使用的方法
2013/11/20 Python
python函数的5种参数详解
2017/02/24 Python
python批量替换多文件字符串问题详解
2018/04/22 Python
浅谈python中真正关闭socket的方法
2018/12/18 Python
python3.7简单的爬虫实例详解
2019/07/08 Python
python 使用shutil复制图片的例子
2019/12/13 Python
selenium+超级鹰实现模拟登录12306
2021/01/24 Python
HTML5 Canvas绘制文本及图片的基础教程
2016/03/14 HTML / CSS
南非领先的在线旅行社:Travelstart南非
2016/09/04 全球购物
韩国11街:11STREET
2018/03/27 全球购物
Haglöfs瑞典官方网站:haglofs火柴棍,欧洲顶级户外品牌
2018/10/18 全球购物
MySQL面试题
2014/01/12 面试题
党课培训心得体会
2014/09/02 职场文书
继续教育个人总结
2015/03/03 职场文书
总经理年会致辞
2015/07/29 职场文书
2019年圣诞节祝福语集锦
2019/12/25 职场文书
SQL Server2019数据库之简单子查询的具有方法
2021/04/27 SQL Server
Python手拉手教你爬取贝壳房源数据的实战教程
2021/05/21 Python
Python matplotlib 利用随机函数生成变化图形
2022/04/26 Python