Помогите пожалуйста разобраться. Для меня не совсем понятно как организовать контроллер в моем конкретном случаи.
В проекте на 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.
Я пытаюсь отправить JSON через POST запрос на контроллер ArticleFilterView.
curl -X POST -H "Content-Type: application/json" -d
'[{
"first": ["Aki", "robot"],
"second": ["doing", "library"]
}]'
http://localhost:8000/api/article/filter/
Пытаюсь сделать так, чтобы контроллер вернул JSON, в котором были бы все статьи в текстке которых есть слова "Aki" и "robot". При этом из текста убрать слова "doing" и "library", если они есть.
Input:[{
"fisrt": ["Aki", "robot"],
"second": ["doing", "library"]
}]
Output:[
{"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):
result = {}
print(request.data)
return Response(data=result)
Для начало я пытался просто запустить контроллер, чтобы посмотреть получает ли он на входе JSON, но он выдает такую ошибку:
Internal Server Error: /api/article/filter/
Traceback (most recent call last):
File "/home/nurzhan_nogerbek/PycharmProjects/ArticleWorld/bookworm_venv/lib/python3.6/site-packages/django/core/handlers/exception.py", line 34, in inner
response = get_response(request)
File "/home/nurzhan_nogerbek/PycharmProjects/ArticleWorld/bookworm_venv/lib/python3.6/site-packages/django/core/handlers/base.py", line 126, in _get_response
response = self.process_exception_by_middleware(e, request)
File "/home/nurzhan_nogerbek/PycharmProjects/ArticleWorld/bookworm_venv/lib/python3.6/site-packages/django/core/handlers/base.py", line 124, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/home/nurzhan_nogerbek/PycharmProjects/ArticleWorld/bookworm_venv/lib/python3.6/site-packages/django/views/decorators/csrf.py", line 54, in wrapped_view
return view_func(*args, **kwargs)
File "/home/nurzhan_nogerbek/PycharmProjects/ArticleWorld/bookworm_venv/lib/python3.6/site-packages/django/views/generic/base.py", line 68, in view
return self.dispatch(request, *args, **kwargs)
File "/home/nurzhan_nogerbek/PycharmProjects/bookworm/bookworm_venv/lib/python3.6/site-packages/rest_framework/views.py", line 483, in dispatch
response = self.handle_exception(exc)
File "/home/nurzhan_nogerbek/PycharmProjects/ArticleWorld/bookworm_venv/lib/python3.6/site-packages/rest_framework/views.py", line 443, in handle_exception
self.raise_uncaught_exception(exc)
File "/home/nurzhan_nogerbek/PycharmProjects/ArticleWorld/bookworm_venv/lib/python3.6/site-packages/rest_framework/views.py", line 471, in dispatch
self.initial(request, *args, **kwargs)
File "/home/nurzhan_nogerbek/PycharmProjects/ArticleWorld/bookworm_venv/lib/python3.6/site-packages/rest_framework/views.py", line 389, in initial
self.check_permissions(request)
File "/home/nurzhan_nogerbek/PycharmProjects/ArticleWorld/bookworm_venv/lib/python3.6/site-packages/rest_framework/views.py", line 321, in check_permissions
for permission in self.get_permissions():
File "/home/nurzhan_nogerbek/PycharmProjects/ArticleWorld/bookworm_venv/lib/python3.6/site-packages/rest_framework/views.py", line 268, in get_permissions
return [permission() for permission in self.permission_classes]
TypeError: 'type' object is not iterable
Был бы очень признателен, если кто-нибудь подсказал и указал в каком направлении копать.