Ver código fonte

图片路径

wushaodong 3 anos atrás
pai
commit
bd602407f3
3 arquivos alterados com 19 adições e 6 exclusões
  1. 12 0
      apps/order/models.py
  2. 6 4
      apps/order/views.py
  3. 1 2
      apps/upload/models.py

+ 12 - 0
apps/order/models.py

@@ -1,4 +1,5 @@
 # coding=utf-8
+import datetime
 from django.db import models
 from django.conf import settings
 from utils.exceptions import CustomError
@@ -137,6 +138,17 @@ class Order(models.Model):
         permissions = [
         ]
 
+    def get_path(self, image_type):
+        today = datetime.datetime.today()
+        year = today.year
+        month = today.month
+        if month < 10:
+            parent_month = '{}-0{}'.format(year, month)
+        else:
+            parent_month = '{}-{}'.format(year, month)
+
+        return '{}/{}/{}/申请/{}/'.format(parent_month, self.seller.name, self.name, OrderImages.TYPE_CHOICE[int(image_type) -1][1])
+
     @staticmethod
     def get_instance_by_id(id):
         try:

+ 6 - 4
apps/order/views.py

@@ -68,7 +68,7 @@ class ProductViewSet(CustomModelViewSet):
         try:
             with transaction.atomic():
                 instance = self.get_object()
-                upload = Upload.objects._addnew(banner_img, 'commodity_image')
+                upload = Upload.objects._addnew(banner_img, 'commodity_image/')
                 if upload:
                     if instance.main_image_id:
                         img = Upload.objects.filter(id=instance.main_image_id).first()
@@ -91,7 +91,7 @@ class ProductViewSet(CustomModelViewSet):
                 for i in range(10):
                     file = request.data.get('file{}'.format(i))
                     if file:
-                        upload = Upload.objects._addnew(file, 'commodity_image')
+                        upload = Upload.objects._addnew(file, 'commodity_image/')
                         ProductImages.objects.create(product_id=instance.id,
                                                      image_id=upload.id)
 
@@ -193,7 +193,8 @@ class OrderUploadView(CreateAPIView):
                     for image in images:
                         image.image.del_images()
                         image.delete()
-                upload = Upload.objects._addnew(file, 'user_image')
+                path = instance.get_path(type)
+                upload = Upload.objects._addnew(file, path)
                 if upload:
                     OrderImages.objects.create(order=instance, type=type, image=upload, )
                     edit = OrderDetailEdit.objects.filter(type=OrderDetailEdit.ONE, order=instance,
@@ -439,7 +440,8 @@ class OrderViewSet(CustomModelViewSet):
                     for image in images:
                         image.image.del_images()
                         image.delete()
-                upload = Upload.objects._addnew(file, 'user_image')
+                path = instance.get_path(type)
+                upload = Upload.objects._addnew(file, path)
                 if upload:
                     OrderImages.objects.create(order=instance, type=type, image=upload, )
                     edit = OrderDetailEdit.objects.filter(type=OrderDetailEdit.ONE, order=instance,

+ 1 - 2
apps/upload/models.py

@@ -11,8 +11,7 @@ class UploadManager(models.Manager):
     def _addnew(self, file, path):
         width = None
         height = None
-
-        path = UploadManager.calculatePath(path)
+        # path = UploadManager.calculatePath(path)
         filename = UploadFile(file, path)
         fullname = "%s%s" % (settings.MEDIA_ROOT, filename)
         size = os.path.getsize(fullname)