【问题标题】:Import using Django admin import-export throws error使用 Django admin import-export 导入会引发错误
【发布时间】:2018-10-21 23:06:16
【问题描述】:

我正在尝试通过 xls 或 JSON 文件导入数据。 Django 在尝试使用 Django 管理员导入-导出功能导入文件时抛出错误。

以下是代码,

Models.py

from django.db import models
from django.utils import timezone

class Questions(models.Model):
    q_no_id = models.AutoField(primary_key=True)
    category = models.CharField(max_length=100)
    question = models.TextField()
    created_at = models.DateTimeField(auto_now_add=True)

    def print_all(self):
        res = self.objects.all()
        for r in res:
            print(r.Question)

我在 settings.py 的 Installed_Apps 部分添加了import_export

admin.py

from import_export.admin import ImportExportModelAdmin
from django.contrib import admin
from .models import Questions
from import_export import resources

class QuestionResource(resources.ModelResource):
    class Meta:
        model = Questions
        fields = ('category', 'question')

@admin.register(Questions)
class QuestionAdmin(ImportExportModelAdmin):
    pass

参考图片如下:

输入的xls文件如下:

为什么我会收到错误消息?我什至尝试从 q_no_id 和 created_at 字段中删除数据(因为它们是自动字段),但错误仍然存​​在。

【问题讨论】:

  • 尝试删除admin.py中的最后3行
  • 我试过了,不行。最后 3 行用于在 django admin 中获取导入导出选项。如果我删除它们,我什至看不到有意义的导入导出按钮。谢谢你的建议。

标签: python django django-import-export


【解决方案1】:

您必须设置要查找的导入导出的外键。您可以覆盖标准的id 字段,如下所示:

class Meta:
        model = Questions
        import_id_fields = ('q_no_id',)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-18
    • 2020-11-18
    • 2020-12-09
    • 1970-01-01
    • 2015-12-05
    相关资源
    最近更新 更多