Не полностью удаляется объект (Django Rest Framework)
Всем привет! Есть несколько ViewSet'ов. Их объединяет один Serrializer и одна модель. Каждый viewSet, по сути, является готовым линком с правильной выдачей (фильтрацией).
К примеру, два вьюсета - Favorites и Posts. Если в Posts я применю на объект DELETE, то он удалится только из Posts, но в Favorites он останется. ОДНАКО, у каждого объекта есть поле URL, и допустим если в Posts объект удален, то в Favorites я его вижу и когда перехожу по по полю url, то в ответ получаю 404 not found.
Почему так происходит и как сделать так, чтобы если, к примеру я удаляю откуда либо, то удалится и в других вьюсетах.
Модель:
class Post(models.Model):
name = models.CharField(verbose_name='name', db_index=True, max_length=64)
city = models.CharField(verbose_name='city', db_index=True, max_length=64)
created = models.DateTimeField(auto_now_add=True)
end_time = models.DateTimeField(default=next_month, blank=True, editable=False)
description = models.CharField(verbose_name='description', db_index=True, max_length=64)
isFan = models.BooleanField(null=True)
main_image = models.ImageField(upload_to=get_auth_dir_path, null=True, max_length=255)
first_image = models.ImageField(upload_to=get_auth_dir_path, null=True, max_length=255)
second_image = models.ImageField(upload_to=get_auth_dir_path, null=True, max_length=255)
ViewSet'ы:
class PostViewSet(LikedMixin, viewsets.ModelViewSet):
queryset = Post.objects.is_actual().order_by('-created')
serializer_class = PostSerializer
authentication_classes = (TokenAuthentication, SessionAuthentication, )
filter_backends = (DjangoFilterBackend, )
filterset_fields = (...)
def perform_create(self, serializer):
serializer.save(author=self.request.user)
class ClosedPostViewSet(LikedMixin, viewsets.ModelViewSet):
queryset = Post.objects.is_not_actual().order_by('-end_time')
serializer_class = PostSerializer
authentication_classes = (TokenAuthentication, SessionAuthentication,)
filter_backends = (DjangoFilterBackend,)
filterset_fields = (...)
def perform_create(self, serializer):
serializer.save(author=self.request.user)
class SearchViewSet(LikedMixin, viewsets.ModelViewSet):
pagination_class = None
queryset = Post.objects.is_actual()
serializer_class = PostSerializer
authentication_classes = (TokenAuthentication, SessionAuthentication, )
filter_backends = (DjangoFilterBackend, )
filterset_fields = (...)
def list(self, request, *args, **kwargs):
queryset = self.filter_queryset(self.get_queryset())
result_list = list(queryset.values('city').annotate(count=Count('city')))
return Response(result_list)
def perform_create(self, serializer):
serializer.save(author=self.request.user)