При публикации одной из своих дневниковых записей пользователь @leo по ошибке вставил в текст поста свой почтовый индекс. В какой именно пост попала эта информация — он не помнит, но очень хочет удалить её из текста.
Помогите пользователю решить эту проблему и найти нужный пост через API. Почтовые индексы России состоят из 6 цифр. Такую последовательность в тексте легко обнаружить при помощи регулярного выражения.
Настройте поиск по текстам публикаций так, чтобы в качестве поисковых запросов можно было использовать регулярные выражения.
Подключите бэкенд SearchFilter к нужному view-классу в приложении api.
Поведение поиска может быть уточнено путем добавления различных символов к полям в search_fields. Вам нужно использовать символ, который разрешит использовать регулярные выражения.
Файл views.py:
from rest_framework import generics, permissions from django_filters.rest_framework import DjangoFilterBackend from rest_framework import filters from posts.models import Post from .serializers import PostSerializer from .permissions import IsAuthorOrReadOnlyPermission class PostList(generics.ListCreateAPIView): queryset = Post.objects.all() serializer_class = PostSerializer permission_classes = (permissions.IsAuthenticatedOrReadOnly,) filter_backends = (DjangoFilterBackend, filters.SearchFilter) search_fields = ('$text',) def perform_create(self, serializer): serializer.save(author=self.request.user) class PostDetail(generics.RetrieveUpdateDestroyAPIView): queryset = Post.objects.all() serializer_class = PostSerializer permission_classes = (IsAuthorOrReadOnlyPermission,)