From 00f9e6be542725871f1708ce1df43aabb7f3aa6b Mon Sep 17 00:00:00 2001 From: Husanjonazamov Date: Wed, 25 Mar 2026 18:17:23 +0500 Subject: [PATCH] categorylanri import qilish qoshildi --- core/apps/vendors/views/vendor.py | 21 ++++++++++++++++++ core/apps/vendors/views/vendor_product.py | 21 ++++++++++++++++++ fondex_backup.sql | 26 +++++++++++++++++++++++ 3 files changed, 68 insertions(+) create mode 100644 fondex_backup.sql diff --git a/core/apps/vendors/views/vendor.py b/core/apps/vendors/views/vendor.py index 3a7a139..62c090d 100644 --- a/core/apps/vendors/views/vendor.py +++ b/core/apps/vendors/views/vendor.py @@ -11,6 +11,9 @@ from core.apps.vendors.serializers.vendor import CreateVendorSerializer, ListVen from rest_framework.viewsets import ModelViewSet +from django.shortcuts import get_object_or_404 +from django.db.models import Q + @extend_schema(tags=["vendor"]) class VendorView(BaseViewSetMixin, ModelViewSet): queryset = VendorModel.objects.all() @@ -27,4 +30,22 @@ class VendorView(BaseViewSetMixin, ModelViewSet): "create": CreateVendorSerializer, "update": CreateVendorSerializer, "partial_update": CreateVendorSerializer, + "destroy": ListVendorSerializer, } + + def get_object(self): + queryset = self.filter_queryset(self.get_queryset()) + lookup_url_kwarg = self.lookup_url_kwarg or self.lookup_field + lookup_value = self.kwargs[lookup_url_kwarg] + + # Qidirish: firestore_id yoki id bo'yicha + if lookup_value.isdigit(): + obj = queryset.filter(Q(id=lookup_value) | Q(firestore_id=lookup_value)).first() + else: + obj = queryset.filter(firestore_id=lookup_value).first() + + if obj is None: + return get_object_or_404(queryset, **{self.lookup_field: lookup_value}) + + return obj + diff --git a/core/apps/vendors/views/vendor_product.py b/core/apps/vendors/views/vendor_product.py index 6bab8a6..f4fbc53 100644 --- a/core/apps/vendors/views/vendor_product.py +++ b/core/apps/vendors/views/vendor_product.py @@ -19,6 +19,9 @@ from django_filters.rest_framework import DjangoFilterBackend from core.apps.vendors.filters.vendor_product import ProductimageFilter, VendorproductFilter from core.apps.vendors.pagination import VendorProductCursorPagination +from django.shortcuts import get_object_or_404 +from django.db.models import Q + @extend_schema(tags=["VendorProduct"]) class VendorproductView(BaseViewSetMixin, ModelViewSet): queryset = VendorproductModel.objects.all().order_by("-created_at") @@ -36,8 +39,26 @@ class VendorproductView(BaseViewSetMixin, ModelViewSet): "create": CreateVendorproductSerializer, "update": CreateVendorproductSerializer, "partial_update": CreateVendorproductSerializer, + "destroy": ListVendorproductSerializer, } + def get_object(self): + queryset = self.filter_queryset(self.get_queryset()) + lookup_url_kwarg = self.lookup_url_kwarg or self.lookup_field + lookup_value = self.kwargs[lookup_url_kwarg] + + # Qidirish: firestore_id yoki id bo'yicha + if lookup_value.isdigit(): + obj = queryset.filter(Q(id=lookup_value) | Q(firestore_id=lookup_value)).first() + else: + obj = queryset.filter(firestore_id=lookup_value).first() + + if obj is None: + return get_object_or_404(queryset, **{self.lookup_field: lookup_value}) + + return obj + + @extend_schema(tags=["ProductImage"]) class ProductimageView(BaseViewSetMixin, ReadOnlyModelViewSet): diff --git a/fondex_backup.sql b/fondex_backup.sql new file mode 100644 index 0000000..91bf422 --- /dev/null +++ b/fondex_backup.sql @@ -0,0 +1,26 @@ +-- +-- PostgreSQL database dump +-- + +\restrict godIWJQQxgiDG9fLAin0wtdYBSNVXeB9yLZgnWTYkgJMVB0J3uxpFg9ZPE6G5tf + +-- Dumped from database version 16.11 (Debian 16.11-1.pgdg13+1) +-- Dumped by pg_dump version 16.11 (Debian 16.11-1.pgdg13+1) + +SET statement_timeout = 0; +SET lock_timeout = 0; +SET idle_in_transaction_session_timeout = 0; +SET client_encoding = 'UTF8'; +SET standard_conforming_strings = on; +SELECT pg_catalog.set_config('search_path', '', false); +SET check_function_bodies = false; +SET xmloption = content; +SET client_min_messages = warning; +SET row_security = off; + +-- +-- PostgreSQL database dump complete +-- + +\unrestrict godIWJQQxgiDG9fLAin0wtdYBSNVXeB9yLZgnWTYkgJMVB0J3uxpFg9ZPE6G5tf +