Feature/likes and views#93
Conversation
Add views_count for project
Add like route and like model for project and user
Add likes counter
VeryBigSad
left a comment
There was a problem hiding this comment.
Модель LikesOnProject конечно работает, но зачем, когда можно сделать M2M поле? + штука с кешем и айпишником юзера, который посмотрел проект - тоже хотелось бы такую минимальную защиту от накрутки
| projects_ids_list = LikesOnProject.objects.filter( | ||
| user=self.request.user, like=True | ||
| ).values_list("project", flat=True) |
There was a problem hiding this comment.
тут можно сделать LikesOnProject.objects.filter(user=self.request.user, like=True).project_set.all(), нет?
There was a problem hiding this comment.
Я пробовал, не получается, мб я туплю
|
|
||
| def retrieve(self, request, *args, **kwargs): | ||
| instance = self.get_object() | ||
| instance.increment_views_count() |
There was a problem hiding this comment.
Я думал, что мы можем сделать так, что один айпишник может увелчить кол-во просмотров на 1 раз в 5 минут. Т.е. добавить кеш ip-project, чтобы просмотры было накрутить проще, чем просто запустить скрипт который кидает запросы к апишке
| permission_classes = [IsAuthenticated] | ||
|
|
||
| def get_queryset(self): | ||
| projects_ids_list = LikesOnProject.objects.filter( |
Fix naming
Fix naming
| def get_collaborator_count(cls, obj): | ||
| return len(obj.collaborator_set.all()) | ||
|
|
||
| def count_likes(self, obj): |
| ), # this url actually returns mentors, experts and investors | ||
| path("users/", UserList.as_view()), | ||
| path("users/projects/", UserProjectsList.as_view()), | ||
| path("users/liked/", LikedProjectList.as_view()), |
There was a problem hiding this comment.
users/liked_projects будет понятнее

No description provided.