This commit is contained in:
marzban-dev
2025-05-22 15:34:34 +03:30
4 changed files with 10 additions and 10 deletions
+2 -2
View File
@@ -1,6 +1,6 @@
from django.urls import path from django.urls import path, re_path
from . import views from . import views
urlpatterns = [ urlpatterns = [
path('product/<int:pk>', views.ProductChatView.as_view(), name='product-chat-view'), re_path(r'^product/(?P<slug>[\w\u0600-\u06FF\-]+)$', views.ProductChatView.as_view(), name='product-chat-view'),
] ]
+2 -2
View File
@@ -94,12 +94,12 @@ class ProductChatView(APIView):
permission_classes = [IsAuthenticated] permission_classes = [IsAuthenticated]
pagination_class = StructurePagination pagination_class = StructurePagination
def get(self, request, pk): def get(self, request, slug):
""" """
Retrieve all messages for a product chat. Retrieve all messages for a product chat.
""" """
user = request.user user = request.user
product = get_object_or_404(ProductModel, id=pk) product = get_object_or_404(ProductModel, slug=slug)
chat, created = ProductChatModel.objects.get_or_create(user=user, product=product) chat, created = ProductChatModel.objects.get_or_create(user=user, product=product)
client = openai.OpenAI(api_key=settings.OPENAI_API_KEY) client = openai.OpenAI(api_key=settings.OPENAI_API_KEY)
+2 -2
View File
@@ -5,7 +5,7 @@ urlpatterns = [
path('slider_category', ShowCaseProductsView.as_view(), name='category-products'), path('slider_category', ShowCaseProductsView.as_view(), name='category-products'),
path('categories', AllCategories.as_view(), name='all-categories'), path('categories', AllCategories.as_view(), name='all-categories'),
path('slider_categories', ShowCaseCategoryListView.as_view(), name='all-categories'), path('slider_categories', ShowCaseCategoryListView.as_view(), name='all-categories'),
path('comments/<int:pk>', CommentView.as_view(), name='comment-views'), re_path(r'^comments/(?P<slug>[\w\u0600-\u06FF\-]+)$', CommentView.as_view(), name='comment-views'),
re_path(r'^(?P<slug>[\u0600-\u06FF\s]+)/$', ProductView.as_view(), name='product-detail'), re_path(r'^(?P<slug>[\w\u0600-\u06FF\-]+)/$', ProductView.as_view(), name='product-detail'),
path('', AllProductsView.as_view(), name='category-products'), path('', AllProductsView.as_view(), name='category-products'),
] ]
+4 -4
View File
@@ -413,17 +413,17 @@ class CommentView(APIView):
404: OpenApiTypes.OBJECT, 404: OpenApiTypes.OBJECT,
}, },
) )
def get(self, request, pk): def get(self, request, slug):
product = get_object_or_404(ProductModel, id=pk) product = get_object_or_404(ProductModel, slug=slug)
comments = product.comments.filter(review_status__in=['not_reviwed', 'reviewed_and_confirmed']) comments = product.comments.filter(review_status__in=['not_reviwed', 'reviewed_and_confirmed'])
paginator = self.pagination_class() paginator = self.pagination_class()
paginated_comments = paginator.paginate_queryset(comments, request) paginated_comments = paginator.paginate_queryset(comments, request)
comments_ser = self.serializer_class(instance=paginated_comments, many=True) comments_ser = self.serializer_class(instance=paginated_comments, many=True)
return paginator.get_paginated_response(comments_ser.data) return paginator.get_paginated_response(comments_ser.data)
def post(self, request, pk): def post(self, request, slug):
comment_ser = CommentSerializer(data=request.data) comment_ser = CommentSerializer(data=request.data)
product = get_object_or_404(ProductModel, id=pk) product = get_object_or_404(ProductModel, slug=slug)
if comment_ser.is_valid(): if comment_ser.is_valid():
comment_ser.save(product=product, user=request.user) comment_ser.save(product=product, user=request.user)
return Response(comment_ser.data, status=status.HTTP_201_CREATED) return Response(comment_ser.data, status=status.HTTP_201_CREATED)