【发布时间】:2018-08-06 20:33:41
【问题描述】:
我有点困惑,需要一些建议如何正确组织视图。在我的 Django REST Framework 项目中,我有非常简单的模型和序列化程序。
models.py:
class Article(models.Model):
body = models.TextField()
serializers.py:
class ArticleSerializer(serializers.ModelSerializer):
class Meta:
model = Article
fields = ('id', 'body')
假设我在数据库中有下一个数据:
ID | BODY
-------------------------------------------------------------
1 | Aki doing his homework about japanese robot in library.
2 | All chapters are accompanied by necessary links.
3 | Japanese robot Aki doing a lot of tasks.
现在我尝试通过POST 向ArticleFilterView 控制器发送JSON 请求:
curl -X POST -H "Content-Type: application/json" -d '[
{
"first": ["Aki", "robot"],
"second": ["doing", "library"]
}]'
http://localhost:8000/api/article/filter/
如果任何文章在正文字段中包含“Aki”和“机器人”字样,我想将该文章添加到 JSON 响应中。同时我需要从文本中删除“doing”和“library”这两个词。
输入:
[{
"fisrt": ["Aki", "robot"],
"second": ["doing", "library"]
}]
输出:
[
{"id": 1, "body": "Aki his homework about japanese robot in ."},
{"id": 3, "body": "Japanese robot Aki a lot of tasks."},
]
views.py:
class ArticleFilterView(APIView):
parser_classes = (JSONParser,)
def post(self, request, format=None):
# some code
return Response({'received data': request.data})
settings.py:
REST_FRAMEWORK = {
'DEFAULT_RENDERER_CLASSES': (
'rest_framework.renderers.JSONRenderer',
),
'DEFAULT_PARSER_CLASSES': (
'rest_framework.parsers.JSONParser',
),
'DEFAULT_PERMISSION_CLASSES': (
'rest_framework.permissions.AllowAny',
),
}
urls.py:(在settings.py文件所在的同一目录中)
urlpatterns = [
path('api/', include('article.urls')),
]
文章/urls.py:
urlpatterns = [
path(
'article/filter/',
ArticleFilterView.as_view(),
name='article_filter',
),
]
【问题讨论】:
标签: python django django-rest-framework