我正在使用Django import-export库添加Import选项来为我的其中一个模型(Sample
)填充数据库。该模型包含应与导入文件列匹配的字段,以及与其他模型ForeignKey
匹配的字段,我希望能够从导入页面上的下拉栏中为所有导入的{{1 }}。
我尝试通过覆盖this answer之后的Samples
来定制导入表单以包括它。
这是我在import_action
中的模型:
core/models.py
这是我如何覆盖class Sample(models.Model):
study = models.ForeignKey(Study, ...)
sample_ID = models.CharField(...)
sample_source = models.CharField(...)
brain_region = models.CharField(...)
RIN = models.CharField(...)
diagnosis = models.CharField(...)
sex = models.CharField(...)
age_at_death = models.IntegerField(...)
ApoE = models.CharField(...)
flowcell = models.CharField(...)
PMI = models.CharField(...)
中的import_action
方法:
core/admin.py
但是,当我尝试访问管理页面以导入class SampleImportForm(ImportForm):
study = forms.ModelChoiceField(queryset=None)
def __init__(self, choice_model, import_formats, *args, **kwargs):
super(SampleImportForm, self).__init__(import_formats, *args, **kwargs)
self.fields['study'].queryset = choice_model.objects.all()
class SampleAdmin(ImportExportModelAdmin):
resource_class = SampleResource
def import_action(self, request, *args, **kwargs):
super().import_action(request, *args, **kwargs)
form = SampleImportForm(Study, self.get_import_formats(), request.POST or None, request.FILES or None)
时,出现以下错误:Samples
,我一直在努力理解。