相关疑难解决方法(0)

为 django import_export 扩展管理导入表单

我正在使用Django import_export在我的管理页面中实现 CSV 上传。现在我有一个模型,它包含一个外键列,但是对于每次导入,外键列只有一个值。因此,我希望允许用户从下拉列表中选择相关的模型实例,而不是强迫用户自己附加列。为了做到这一点,我需要自定义导入表单,这需要覆盖默认方法import_actionprocess_import,但到目前为止我的努力没有显示出任何效果。这是我到目前为止所拥有的:

from django import forms
from import_export.forms import ImportForm  
from .models import MyModel, RelatedModel

class CustomImportForm(ImportForm):
    """Add a model choice field for a given model to the standard form."""
    appended_instance = forms.ModelChoiceField(queryset=None)

    def __init__(self, choice_model, import_formats, *args, **kwargs):
        super(CustomImportForm, self).__init__(import_formats, *args, **kwargs)
        self.fields['appended_instance'].queryset = choice_model.objects.all()

@admin.register(MyModel)
class MyModelAdmin(ImportExportModelAdmin):
    resource_class = SomeResource


    def import_action(self, request, *args, **kwargs):
        super().import_action(self, request, *args, **kwargs)
        form = CustomImportForm(RelatedModel, 
                                import_formats,
                                request.POST or None,
                                request.FILES or None)
Run Code Online (Sandbox Code Playgroud)

现在,当我进入导入页面时,我得到了 …

django-admin django-import-export

6
推荐指数
1
解决办法
1360
查看次数

标签 统计

django-admin ×1

django-import-export ×1