Search api lari tayyor

This commit is contained in:
2025-11-25 12:45:13 +05:00
parent a7efc16cda
commit 638438b62a
10 changed files with 75 additions and 1 deletions

View File

@@ -1,2 +1,3 @@
from .core import * # noqa from .core import * # noqa
from .user import * # noqa from .user import * # noqa
from .others import * # noqa

View File

@@ -0,0 +1,12 @@
from django.contrib import admin
from unfold.admin import ModelAdmin
from core.apps.accounts.models import SearchHistory
@admin.register(SearchHistory)
class SearchHistoryAdmin(ModelAdmin):
list_display = (
"id",
"__str__",
)

View File

View File

@@ -1 +1,2 @@
from .category import * # noqa from .category import * # noqa
from .search import * # noqa

View File

@@ -0,0 +1 @@
from .search import * # noqa

View File

@@ -0,0 +1,27 @@
from rest_framework import serializers
from core.apps.accounts.models import SearchHistory
class BaseSearchHistorySerializer(serializers.ModelSerializer):
class Meta:
model = SearchHistory
fields = [
"value",
]
class ListSearchHistorySerializer(BaseSearchHistorySerializer):
class Meta(BaseSearchHistorySerializer.Meta): ...
class RetrieveSearchHistorySerializer(BaseSearchHistorySerializer):
class Meta(BaseSearchHistorySerializer.Meta): ...
class CreateSearchHistorySerializer(BaseSearchHistorySerializer):
class Meta(BaseSearchHistorySerializer.Meta): ...
def create(self, validated_data):
validated_data['user'] = self.context['request'].user
history = SearchHistory.objects.create(**validated_data)
return history

View File

@@ -1,8 +1,9 @@
from django.urls import include, path from django.urls import include, path
from rest_framework.routers import DefaultRouter from rest_framework.routers import DefaultRouter
from core.apps.api.views import CategoryViewSet from core.apps.api.views import CategoryViewSet, SearchHistoryViewSet
router = DefaultRouter() router = DefaultRouter()
router.register("category", CategoryViewSet, basename="category") router.register("category", CategoryViewSet, basename="category")
router.register("search-history", SearchHistoryViewSet, basename="search-history")
urlpatterns = [path("", include(router.urls))] urlpatterns = [path("", include(router.urls))]

View File

@@ -1 +1,2 @@
from .category import * # noqa from .category import * # noqa
from .search import * # noqa

View File

@@ -0,0 +1 @@
from .search import * # noqa

View File

@@ -0,0 +1,29 @@
from rest_framework import mixins
from rest_framework.viewsets import GenericViewSet
from django_core.mixins.base import BaseViewSetMixin
from drf_spectacular.utils import extend_schema
from rest_framework.permissions import IsAuthenticated
from core.apps.accounts.models import SearchHistory
from core.apps.api.serializers.search import (
ListSearchHistorySerializer,
RetrieveSearchHistorySerializer,
CreateSearchHistorySerializer,
)
@extend_schema(tags=['Search'])
class SearchHistoryViewSet(BaseViewSetMixin, mixins.ListModelMixin, mixins.CreateModelMixin,
mixins.DestroyModelMixin, GenericViewSet):
serializer_class = ListSearchHistorySerializer
permission_classes = [IsAuthenticated]
http_method_names = ['get', 'post', 'delete']
action_permission_classes = {}
action_serializer_class = {
'list': ListSearchHistorySerializer,
'create': CreateSearchHistorySerializer,
}
def get_queryset(self):
queryset = SearchHistory.objects.filter(user=self.request.user)
return queryset