order urls fix intendent and order item verbose name udpate
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
from django.contrib import admin
|
||||
from .models import *
|
||||
from unfold.admin import ModelAdmin, TabularInline
|
||||
from unfold.admin import ModelAdmin, TabularInline, StackedInline
|
||||
|
||||
from import_export.admin import ImportExportModelAdmin
|
||||
from unfold.contrib.import_export.forms import ExportForm, ImportForm, SelectableFieldsExportForm
|
||||
@@ -8,7 +8,7 @@ from unfold.contrib.forms.widgets import ArrayWidget, WysiwygWidget
|
||||
from django.contrib.postgres.fields import ArrayField
|
||||
|
||||
|
||||
class OrderItemModelInline(TabularInline):
|
||||
class OrderItemModelInline(StackedInline):
|
||||
model = OrderItemModel
|
||||
extra = 0
|
||||
max_num = 0
|
||||
|
||||
@@ -79,8 +79,8 @@ class OrderItemModel(models.Model):
|
||||
quantity = models.SmallIntegerField(verbose_name="تعداد")
|
||||
product = models.ForeignKey(ProductVariant, on_delete=models.PROTECT, verbose_name="محصول")
|
||||
class Meta:
|
||||
verbose_name = 'محصول خریداری شده'
|
||||
verbose_name_plural = 'محصولات خریداری شده'
|
||||
verbose_name = 'ایتم سبد خرید'
|
||||
verbose_name_plural = 'ایتم های سبد خرید'
|
||||
|
||||
def total(self):
|
||||
return self.quantity * self.product.get_toman_price()
|
||||
@@ -88,5 +88,5 @@ class OrderItemModel(models.Model):
|
||||
def total_with_discount(self):
|
||||
return self.quantity * self.product.get_toman_price_after_discount()
|
||||
def __str__(self):
|
||||
return f'ایتم سبد خرید محصول: {self.product} کاربر {self.order.user}'
|
||||
return f'({self.product}) - ({self.order.user})'
|
||||
|
||||
|
||||
@@ -1,8 +1,11 @@
|
||||
from django.conf.urls.static import static
|
||||
from django.contrib import admin
|
||||
from django.urls import path, include
|
||||
from .views import CartItemViews
|
||||
from .views import CartItemViews, CartView
|
||||
|
||||
urlpatterns = [
|
||||
path('cart/item/<int:pk>', CartItemViews.as_view(), name='add cart'),
|
||||
path('cart', CartView.as_view()),
|
||||
path('cart/item/<int:pk>', CartItemViews.as_view(), name='change-item-cart'),
|
||||
path('payment', CartView.as_view()),
|
||||
path('', CartView.as_view()),
|
||||
]
|
||||
|
||||
+29
-29
@@ -28,41 +28,41 @@ class CartItemViews(APIView):
|
||||
permission_classes = [IsAuthenticated]
|
||||
serializer_class = OrderItemSerailzier
|
||||
def post(self, request, pk):
|
||||
product_variant = get_object_or_404(ProductVariant, pk=pk)
|
||||
product_variant = get_object_or_404(ProductVariant, pk=pk)
|
||||
|
||||
cart_order, created = OrderModel.objects.get_or_create(
|
||||
user=request.user,
|
||||
status='CART'
|
||||
)
|
||||
order_item, created = OrderItemModel.objects.get_or_create(
|
||||
order=cart_order,
|
||||
product=product_variant,
|
||||
defaults={'quantity': request.data.get('quantity', 1)}
|
||||
)
|
||||
cart_order, created = OrderModel.objects.get_or_create(
|
||||
user=request.user,
|
||||
status='CART'
|
||||
)
|
||||
order_item, created = OrderItemModel.objects.get_or_create(
|
||||
order=cart_order,
|
||||
product=product_variant,
|
||||
defaults={'quantity': request.data.get('quantity', 1)}
|
||||
)
|
||||
|
||||
if not created:
|
||||
order_item.quantity = request.data.get('quantity', 1)
|
||||
order_item.save()
|
||||
if not created:
|
||||
order_item.quantity = request.data.get('quantity', 1)
|
||||
order_item.save()
|
||||
|
||||
return Response({'detail': 'it did something'}, status=status.HTTP_201_CREATED)
|
||||
return Response({'detail': f'تعداد ایتم {product_variant.product.name} به {request.data.get('quantity', 1)} تغییر کرد'}, status=status.HTTP_202_ACCEPTED)
|
||||
def delete(self, request, pk):
|
||||
product_variant = get_object_or_404(ProductVariant, pk=pk)
|
||||
product_variant = get_object_or_404(ProductVariant, pk=pk)
|
||||
|
||||
cart_order, created = OrderModel.objects.get_or_create(
|
||||
user=request.user,
|
||||
status='CART'
|
||||
)
|
||||
# order_item, created = OrderItemModel.objects.get_or_create(
|
||||
# order=cart_order,
|
||||
# product=product_variant,
|
||||
# defaults={'quantity': request.data.get('quantity', 1)}
|
||||
# )
|
||||
order_item = get_object_or_404(OrderItemModel, order=cart_order, product=product_variant)
|
||||
order_item.delete()
|
||||
return Response({'detail': 'it did something related to delete'}, status=status.HTTP_204_NO_CONTENT)
|
||||
cart_order, created = OrderModel.objects.get_or_create(
|
||||
user=request.user,
|
||||
status='CART'
|
||||
)
|
||||
# order_item, created = OrderItemModel.objects.get_or_create(
|
||||
# order=cart_order,
|
||||
# product=product_variant,
|
||||
# defaults={'quantity': request.data.get('quantity', 1)}
|
||||
# )
|
||||
order_item = get_object_or_404(OrderItemModel, order=cart_order, product=product_variant)
|
||||
order_item.delete()
|
||||
return Response({'detail': f'محصول {product_variant.product.name} از سبد خرید پاک شد'}, status=status.HTTP_204_NO_CONTENT)
|
||||
|
||||
|
||||
|
||||
class CartViews(APIView):
|
||||
class CartView(APIView):
|
||||
def get(self, request):
|
||||
pass
|
||||
return Response({'detail': 'این بخش در حال توسعه می باشد تا اماده شدن این بخش به نقاشی خود ادامه دهید'}, status=status.HTTP_404_NOT_FOUND)
|
||||
|
||||
Reference in New Issue
Block a user