1

我正在尝试使导入导出选择当前/保存用户(定义为模型中的“作者”字段)

我试过这个(save_model)但它不起作用(我认为是因为资源类)

class KWResource(resources.ModelResource):

    class Meta:

        model = KW
        import_id_fields = ('Keyword',)
        fields = ('Keyword',)


    searchess = fields.Field(attribute='searches', column_name="Avg. Monthly Searches (exact match only)")
    compp = fields.Field(attribute='comp', column_name="Competition")
    cpcc = fields.Field(attribute='cpc', column_name="Suggested bid")        

    def save_model(self, request, obj, form, change):
        if getattr(obj, 'author', None) is None:
            obj.author = request.user
        obj.save()

如何获取在此处启动导入的管理员用户的 ID?

4

2 回答 2

2

对于以后发现此问题的任何人,您可以在资源的挂钩中访问当前的 django 用户。**kwargs 中有一个“用户”。

def before_import_row(self, row, **kwargs):
    row['author'] = kwargs['user'].id

更多细节在这里: django-import-export 分配当前用户

于 2019-05-31T13:29:00.927 回答
2

想通了,不确定它是否是最好的解决方案,但它有效:

class KWResource(resources.ModelResource):
....
....
   def before_import(self, dataset, dry_run, *args, **kwargs):
       li = []
       li.append(kwargs.pop('user', 1))
       dataset.insert_col(0, li, 'user')
       return super(KWResource, self).before_import(dataset, dry_run, *args, **kwargs)
于 2015-11-22T04:11:50.517 回答