[英]Django Rest Framework not retrieving data from my database
我正在創建一個API端點以從Mongo數據庫檢索數據,以便在前端使用它。
在我的項目中,我使用了兩個數據庫:sqlite數據庫和Mongo數據庫。
在Mongo數據庫中,有一個名為tst
的集合,其中包含一些數據。 我創建了終結點,但是在瀏覽器上打開api之后,我沒有看到從集合中檢索到的json數據,好像它不在正確的位置。
有人可以幫我找出我在做錯什么嗎?
這是我的模型:
class tst(models.Model):
id = models.CharField(max_length=100)
ticker = models.FloatField()
def save(self, *args, using=None, **kwargs):
super(tst, self).save(*args, using='dbtwo', **kwargs)
這是我的看法:
class tstList(generics.ListCreateAPIView):
queryset = tst.objects.using('dbtwo').all()
serializer_class = tstSerializer
這是序列化器:
class tstSerializer(serializers.ModelSerializer):
class Meta:
model = tst
fields = ('id', 'ticker', )
和網址:
path('tst/', views.tstList.as_view()),
因此,我像您一樣設置了2個數據庫,稍稍更改了代碼,在數據庫中添加了2個tst
對象,並在我的API調用中檢索了這2個tst
對象的JSON數據。
我通過在id
字段中添加primary_key=True
來稍微更改了models.py
。
# models.py
class tst(models.Model):
id = models.CharField(primary_key=True, max_length=100)
ticker = models.FloatField()
def save(self, *args, using=None, **kwargs):
super(tst, self).save(*args, using='dbtwo', **kwargs)
我更改了views.py
,使其使用了ModelViewSet
如下所示:
# views.py
from rest_framework import viewsets
class tstList(viewsets.ModelViewSet):
queryset = tst.objects.using('dbtwo').all()
serializer_class = tstSerializer
我沒有對序列化器進行任何更改,因此我的看起來像這樣:
# serializers.py
class tstSerializer(serializers.ModelSerializer):
class Meta:
model = tst
fields = ('id', 'ticker',)
最后,在urls.py
我使用了DefaultRouter()
並將tstList
視圖注冊為這樣的端點:
# urls.py
from rest_framework import routers
# imported tstList view here
router = routers.DefaultRouter()
router.register(r'test', views.tstList, base_name='test')
然后在終端中運行以下命令:
manage.py makemigrations
manage.py migrate --database dbtwo
manage.py runserver
然后,我為兩個tst
對象的ticker
欄創建了具有隨機浮點值的對象。
現在,我向http://127.0.0.1:8000/test/
發出GET請求時,將得到以下結果:
[
{
"id": "1",
"ticker": 1.2
},
{
"id": "2",
"ticker": 1.7
}
]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.