使用Sql和Django框架的Django和rest

2024-09-29 02:28:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我不熟悉django,它使用sqldb作为默认值,但也将其连接到mongodb。在我的模型.py我

from mongoengine import Document, EmbeddedDocument, fields

class ToolInput(EmbeddedDocument):
    name = fields.StringField(required=True)
    value = fields.DynamicField(required=True)

class Tool(Document):
    label = fields.StringField(required=True)
    description = fields.StringField(required=True, null=True)
    inputs = fields.ListField(fields.EmbeddedDocumentField(ToolInput))

在我的序列化程序.py我有:

^{pr2}$

在我的api.py文件我有:

from .serializers import ListSerializer, CardSerializer, ToolSerializer
from rest_framework.generics import ListAPIView
from rest_framework_mongoengine import viewsets as mongoViewsets
from .models import List, Card, Tool

class ToolApi(mongoViewsets.ModelViewSet):
    #lookup_field = 'id'
    queryset = Tool.objects.all()
    serializer_class = ToolSerializer

在我的网址.py我有:

from django.conf.urls import include, url
from .api importToolApi

urlpatterns = [
    url(r'Tool', ToolApi.as_view({'get': 'Tool'})),
]

当我调用此api时,错误提示:-“ToolApi”对象没有“Tool”属性

之前我使用的是rest的ListAPIView类_框架.泛型创建从sql访问数据的api。错误是因为我对ToolApi使用了ModelViewSet吗?在

PS-请让我参考一些同时使用mongodb和sql的git项目


Tags: djangofrompyimportrestapitruefields
1条回答
网友
1楼 · 发布于 2024-09-29 02:28:16

抱歉迟了回复,Shubham。在

我认为,问题是您不应该在以下情况下使用{'get': 'Tool'}

urlpatterns = [
    url(r'Tool', ToolApi.as_view({'get': 'Tool'})),
]

相反,您应该使用类似于:

^{pr2}$

或者

urlpatterns = [
    url(r'Tool', ToolApi.as_view({'get': 'retrieve'})),
]

至于回购的例子,恐怕我不能提供比:https://github.com/BurkovBA/django-rest-framework-mongoengine-example/stargazers更好的了。在

相关问题 更多 >