亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

不將 **kwargs 從自定義視圖/表單傳遞到 django-import-export 資源

不將 **kwargs 從自定義視圖/表單傳遞到 django-import-export 資源

長風秋雁 2023-05-09 10:10:31
當我在 Django 管理中使用這個 resources.py 時,一切正常。但是,當我在我的自定義視圖頁面上執行此操作時,**kwargs 用戶自動填充出現了一個問題。錯誤一定是在我看來,因為它沒有通過 **kwargs,但我不確定如何解決它。我應該在哪里傳遞這些信息?KeyError at /import/'user'C:\Users\winkl\tj3\venv\lib\site-packages\import_export\resources.py in import_row            self.after_import_instance(instance, new, **kwargs) …C:\Users\winkl\tj3\portfolios\resources.py in after_import_instance        instance.created_by = kwargs['user'] resources.pyclass EntryResource(resources.ModelResource):    symbol = fields.Field(    attribute="symbol",    column_name="symbol",    widget=SymbolWidget(Symbol, 'name'),    )    date = fields.Field(    attribute="date",    column_name="date",    widget=widgets.DateTimeWidget(format="%Y-%m-%d %H:%M:%S"),    )    class Meta:        model = Entry        fields = ('symbol', 'date', 'id', 'amount', 'price', 'fee', 'entry_type', 'reg_fee',)        import_order = fields        skip_unchanged = False        report_skipped = True    def after_import_instance(self, instance, new, row_number=None, **kwargs):        print(f' Kwargs: {kwargs}')        instance.created_by = kwargs['user']    def after_save_instance(self, instance, using_transactions, dry_run):        passview.py@login_requireddef import_data(request):    if request.method == 'POST':        trade_resource = EntryResource()        dataset = Dataset()        new_trades = request.FILES['importData']        imported_data = dataset.load(new_trades.read().decode('utf-8'),format='csv')        result = trade_resource.import_data(dataset, dry_run=True, raise_errors=True)        if result.has_errors():            messages.error(request, 'Uh oh! Something went wrong...')        else:            # Import now            trade_resource.import_data(dataset, dry_run=False)            messages.success(request, 'Your words were successfully imported')    return render(request, 'dashboard/import.html')
查看完整描述

1 回答

?
寶慕林4294392

TA貢獻2021條經驗 獲得超8個贊

顯然,您收到錯誤是因為 kwargs 字典中沒有包含鍵“用戶”的條目。

如果查看源代碼,您會看到 getkwargs向下傳遞到調用堆棧中after_import_instance()

user在您的情況下, kwargs 字典中從來沒有任何條目。

但是,如果您將此值傳遞給調用import_data(),則可以檢索和使用它:

?your_user?=?load_user()?#?implement?this?as?required
?result?=?trade_resource.import_data(dataset,?dry_run=True,?raise_errors=True,?user=your_user)



查看完整回答
反對 回復 2023-05-09
  • 1 回答
  • 0 關注
  • 135 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號