亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術(shù)文章
文章詳情頁

django修改models重建數(shù)據(jù)庫的操作

瀏覽:2日期:2024-10-15 09:31:00

第二次修改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

于是刪除數(shù)據(jù)庫表,繼續(xù)報(bào)相同的錯(cuò)誤

makemigration需要指定名稱,然后migrate才能識(shí)別兩次<span style='font-family: Arial, Helvetica, sans-serif;'>makemigrations的不同</span>

python manage.py makemigrations --name sqlname

然后再執(zhí)行:

python manage.py migrate

成功解決問題!

補(bǔ)充知識(shí):django rest framework如何一次性序列化同一個(gè)數(shù)據(jù)庫下多個(gè)model表數(shù)據(jù)在一個(gè)json頁面下

在django項(xiàng)目中,首先我們要安裝django-rest-mutiple-models

pip install django-rest-multiple-models

然后在setting配置中配置一下APP

INSTALLED_APPS = ( .... ’drf_multiple_model’,)

在我們的views視圖函數(shù)下引入

from drf_multiple_model.views import ObjectMultipleModelAPIView

如下兩個(gè)模型

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中我們可以這么寫,繼承一個(gè)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,那這里我們就應(yīng)該繼承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}, .... ],}

效果就是能在一個(gè)json頁面下序列化出多個(gè)不同的model數(shù)據(jù)

我們還可以對(duì)每個(gè)表的數(shù)據(jù)進(jìn)行分頁

from drf_multiple_model.pagination import MultipleModelLimitOffsetPagination

views下可以這么寫

class LimitPagination(MultipleModelLimitOffsetPagination):default_limit = 10

意思是每個(gè)model默認(rèn)顯示前十條數(shù)據(jù)

如果前端需要,url上可以加上limit=5,自定義默認(rèn)顯示前五條數(shù)據(jù)

更多詳細(xì)內(nèi)容,github搜索DjangoRestMultipleModels

以上這篇django修改models重建數(shù)據(jù)庫的操作就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Django
相關(guān)文章:
主站蜘蛛池模板: 小优视频高清视频在线看 | 国产一区二区三区鲁婷婷 | 欧美日韩国产在线人 | 91精品国产91久久久久福利 | 手机在线观看亚洲国产精品 | 国产成人啪精品午夜在线观看 | 交免费观看在线 | 97国产成人精品视频 | 成人精品免费网站 | 国产成人久久综合热 | 国产一级特黄aa大片免费 | 精品在线视频免费 | 99久久99久久精品免费看蜜桃 | 色婷婷综合缴情综六月 | 亚洲精品国产第一区二区尤物 | 一级aaaaaa毛片免费同男同女 | 午夜激情在线 | 欧美区在线| 不卡一级毛片免费高清 | 中文字幕一区二区三区在线播放 | 欧美一级aa免费毛片 | 国产激情视频在线观看首页 | 蜜桃视频一区二区在线看 | 黄色毛片电影 | 韩国一级毛片视频免费观看 | 一级香蕉免费毛片 | 国产亚洲精品bv在线观看 | 国产精品日本欧美一区二区 | 亚洲免费一区 | 亚洲一区免费在线观看 | 老司机日日摸夜夜摸精品影院 | a毛片免费视频 | 清纯唯美亚洲综合一区 | 欧美国产合集在线视频 | 精品国产丝袜自在线拍国 | 91国偷自产一区二区三区 | 夜色www | 国产精品久久久久久免费播放 | 免费一级网站免费 | 婷婷激情综合网 | jizzjiz熟丰满老妇日本 |