views.py 文件源码

python
阅读 19 收藏 0 点赞 0 评论 0

项目:prestashop-sync 作者: dragoon 项目源码 文件源码
def add_data(request, pk):
    shop = get_object_or_404(Shop, pk=pk, user=request.user)

    # Hack to supply additional argument to the AddProdutsShopForm
    AddProductsShopFormSet = formset_factory(AddProductsShopForm,
                                             formset=AddProductsShopBaseFormSet)
    AddProductsShopFormSet.form = staticmethod(curry(AddProductsShopForm, shop=shop))

    formset = AddProductsShopFormSet(request.POST or None)
    if request.method == 'POST':
        # Set csv file, we later access it in clean method
        try:
            formset.csv_file = request.session.pop(AddProductsShopForm.CSV_FILE_NAME)
            formset.csv_file.shop = shop
        except KeyError:
            pass
        if formset.is_valid():
            images = []
            data_list = []
            for form in formset:
                data_list.append(form.cleaned_data)
                try:
                    images.append(request.session.pop('product_%d' % form.cleaned_data['order']))
                except KeyError:
                    pass
            response = shop.api.add_product_data(data_list, images)
            return HttpResponse(simplejson.dumps({'response': response, 'result': 'success'}))
        else:
            response = {}
            for form in formset:
                order = form.data[form.prefix + '-order'][0]
                for k, v in form.errors.items():
                    response['form-%s-%s' % (order, k)] = v
            return HttpResponse(simplejson.dumps({'response': response, 'result': 'error'}))
    return direct_to_template(request, template="partial/shop_add_products.html",
                              extra_context={'formset': formset, 'shop': shop})
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号