將django rest 與 mongodb結合起來
前言 由於專案要用到mongodb,就試了試,在django框架下面,發現還不錯,儲存與獲取物件都挺簡單的。以為沒有啥特別的問題,結果今天發現,如果用rest框架去獲取API呢??? 如果我們按照以往的方式,讓MyViewSet繼承自rest_framework.viewsets.ModelViewSet,MySerializer繼承自rest_framework.serializers.ModelSerializer,這樣的方式是行不通的!!!
會丟擲錯誤:AttributeError: 'QuerySet' object has no attribute 'model'
解決辦法: 點我檢視github例子
安裝為mongoengine特定的rest框架pip django-rest-framework-mongoengine
在settings.py中為INSTALLED_APPS,新增rest_framework_mongoengine
在你的serializers.py中
匯入:from rest_framework_mongoengine import serializers as mongoserializers
使你的Serializer類繼承自mongoserializers.DocumentSerializer
在你的views.py中,匯入:
from rest_framework_mongoengine.viewsets import ModelViewSet as MongoModelViewSet
使你的ViewSet繼承自MongoModelViewSet
在router進行註冊的時候,要加上第三個引數,base_name,例如:
router.register(r'exams',QuestionsViewSet,'exams')
這樣就可以正常使用了。建議大家看看我發的那個連結地址,那裡面有例項,大家參照我總結的和那個例子,相信問題應該不大。 原文:https://blog.csdn.net/q1242027878/article/details/74894296