上传后未发送/保存文件。.返回emptydict {}

时间:2020-05-20 14:05:01

标签: ajax django-forms django-views

我正在尝试通过保存在具有namespace Custom\SalesRule\Model; use Magento\SalesRule\Model\Rule\Action\Discount\CalculatorFactory; use Magento\Framework\Event\ManagerInterface; use Magento\SalesRule\Model\Utility; use Magento\SalesRule\Model\Quote\ChildrenValidationLocator; use Magento\SalesRule\Model\Rule\Action\Discount\DataFactory; use Magento\SalesRule\Api\Data\RuleDiscountInterfaceFactory; use Magento\SalesRule\Api\Data\DiscountDataInterfaceFactory; class RulesApplier extends \Magento\SalesRule\Model\RulesApplier { /** * custom validation before applying rule * * @param \Magento\SalesRule\Model\Rule\Action\Discount\CalculatorFactory\CalculatorFactory $calculatorFactory * @param \Magento\Framework\Event\ManagerInterface $eventManager * @param \Magento\SalesRule\Model\Utility $utility * @param \Magento\SalesRule\Model\Quote\ChildrenValidationLocator|null $childrenValidationLocator * @param DataFactory|null $discountDataFactory * @param RuleDiscountInterfaceFactory|null $discountInterfaceFactory * @param DiscountDataInterfaceFactory|null $discountDataInterfaceFactory */ public function __construct( CalculatorFactory $calculatorFactory, ManagerInterface $eventManager, Utility $utility, ChildrenValidationLocator $childrenValidationLocator = null, DataFactory $discountDataFactory = null, RuleDiscountInterfaceFactory $discountInterfaceFactory = null, DiscountDataInterfaceFactory $discountDataInterfaceFactory = null ) { parent::_construct( $calculatorFactory, $eventManager, $utility, $childrenValidationLocator, $discountDataFactory, $discountInterfaceFactory, $discountDataInterfaceFactory ); } /** * Apply rules to current order item * * @param \Magento\Quote\Model\Quote\Item\AbstractItem $item * @param \Magento\SalesRule\Model\ResourceModel\Rule\Collection $rules * @param bool $skipValidation * @param mixed $couponCode * @return array * @SuppressWarnings(PHPMD.CyclomaticComplexity) */ public function applyRules($item, $rules, $skipValidation, $couponCode) { $address = $item->getAddress(); $appliedRuleIds = []; /* @var $rule \Magento\SalesRule\Model\Rule */ foreach ($rules as $rule) { if (!$this->validatorUtility->canProcessRule($rule, $address)) { continue; } if (!$skipValidation && !$rule->getActions()->validate($item)) { if (!$this->childrenValidationLocator->isChildrenValidationRequired($item)) { continue; } $childItems = $item->getChildren(); $isContinue = true; if (!empty($childItems)) { foreach ($childItems as $childItem) { if ($rule->getActions()->validate($childItem)) { $isContinue = false; } } } if ($isContinue) { continue; } } $this->applyRule($item, $rule, $address, $couponCode); $appliedRuleIds[$rule->getRuleId()] = $rule->getRuleId(); if ($rule->getStopRulesProcessing()) { break; } } return $appliedRuleIds; } 的模型中的FileField上载文件。当我运行服务器时,发布似乎成功,但返回emptydict。应要求文件不存在。FILES。我浏览了以下链接:

1。Empty Request.FILES with Django Upload forms

2。Django JQuery Ajax File Upload

3。Django form upload request.files empty

出现类似问题的

仍然找不到解决方案。如果有人告诉我我要去哪里错了,我将不胜感激!

models.py

upload_to

views.py

    class Document(models.Model):
        '''Model for a document'''
        name = models.CharField("Name", max_length=50)
        record = models.ForeignKey(Record, on_delete=models.CASCADE, null=True, blank=True)
        category = models.ForeignKey(FileCategory, on_delete=models.SET_NULL, null=True, blank=True)
        uploader = models.ForeignKey(LocalUser, on_delete=models.SET_NULL, null=True, blank=True)
        upload_date = models.DateTimeField("Hochgeladen am", auto_now=True)
        file = models.FileField(upload_to=user_directory_path_2)

模板

def post_new_document(request):
       print(request.FILES)
       if request.method == 'POST':
           form = DocumentForm(request.POST, request.FILES)
           if form.is_valid() or True:
               instance = Document()
               file = request.FILES.get('uploaded_document', None)
               if not file:
                   return JsonResponse({'name': instance.file.name})
               instance.file = file
               instance.name = instance.file.name
               print(request.FILES)
               instance.save()
   return render(request, 'records/record_detail.html', {'form':form})

0 个答案:

没有答案
相关问题