コード例 #1
0
 def post(self, product_id=None, **kwargs):
     """Handle submitted form data"""
     # validate form
     if self.form.validate():
         name = self.form.name.data
         description = self.form.description.data
         price = self.form.price.data
         unit = self.form.unit.data
         live = self.form.live.data
         tags = self.form.tags.data
         language = self.form.language.data
         if tags is not None:
             tags = [tag.strip() for tag in tags.split(',') if tag != '']
         # save edit form
         if product_id:
             product = Product.get_by_id(product_id)
             product.name = name
             product.description = description
             product.price = price
             product.unit = unit
             product.live = live
             product.tags = tags
             product.language = language
         # save new form
         else:
             product = Product(name=name,
                               description=description,
                               price=price,
                               unit=unit,
                               live=live,
                               tags=tags,
                               language=language)
         if product.put():
             return redirect('/admin/shop/products/')
     return self.get(**kwargs)
コード例 #2
0
    def create(self, validated_data):
        category = validated_data.pop('category')
        subcategories = validated_data.pop('subcategories')
        photos = validated_data.pop('photos', [])

        store = self.context['request'].user.seller.store

        with transaction.atomic():
            category = self._get_or_create_category(category)

            validated_data.update({"category": category, "store": store})

            product = Product(**validated_data)
            product.save()

            self._get_or_create_subcategories(product, subcategories)
            self._get_or_create_photos(product, photos)

        return product