Django import export 出现错误 "Tablib has no format ' None' 或未注册”

标签 django django-import-export

我正在尝试在我的应用程序中实现 csv 导入,但出现此错误, Tablib 没有格式“None”或未注册。

我正在使用 python 3.5 和 Django 2.2。 我用 python 2.7 和 Django 1.8 尝试了相同的代码,它运行良好。我的代码有问题吗?

我的模型:

class Stock(models.Model):
    category = models.ForeignKey(Category, on_delete=models.CASCADE, blank=True)
    item_name = models.CharField(max_length=50, blank=True, null=True)
    quantity = models.IntegerField(default='0', blank=False, null=True)
    receive_quantity = models.IntegerField(default='0', blank=True, null=True)
    receive_by = models.CharField(max_length=50, blank=True, null=True)
    issue_quantity = models.IntegerField(default='0', blank=True, null=True)
    issue_by = models.CharField(max_length=50, blank=True, null=True)
    issue_to = models.CharField(max_length=50, blank=True, null=True)
    phone_number = models.CharField(max_length=50, blank=True, null=True)
    created_by = models.CharField(max_length=50, blank=True, null=True)
    reorder_level = models.IntegerField(default='0', blank=True, null=True)
    last_updated = models.DateTimeField(auto_now_add=False, auto_now=True)

    def __str__(self):
        return self.item_name

资源.py

from import_export import resources
from .models import Stock, Person

class StockResource(resources.ModelResource):
    class Meta:
        model = Stock

Views.py:

from .resources import StockResource


def upload(request):
    if request.method == 'POST':
        stock_resource = StockResource()
        dataset = Dataset()
        new_stock = request.FILES['myfile']

        imported_data = dataset.load(new_stock.read())
        result = stock_resource.import_data(dataset, dry_run=True)  # Test data import

        if not result.has_errors():
            stock_resource.import_data(dataset, dry_run=False)  # Run import

    return render(request, 'csv_import.html')


csv_import.html

    <form method="post" enctype="multipart/form-data">
      {% csrf_token %}
      <input type="file" name="myfile"><br><br>
      <button type="submit">Upload</button>
    </form>

csv_import.csv

1,phone,1,0,9,0,9,9,9,,ssaine,0,2020-06-11,
2,computer,2,0,9,0,9,9,9,9,ssaine,0,2020-08-11,

最佳答案

关于 try 的几件事:

imported_data = Dataset().load(new_stock.read().decode(), format='csv', headers=False)
print(imported_data)

如果这不起作用,请准确验证从 new_stock.read() 返回的内容。它是有效的 csv 数据吗?在服务器上进行测试之前,您可以在本地进行测试。

关于Django import export 出现错误 "Tablib has no format ' None' 或未注册”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62413974/

相关文章:

python - 导入 m2m 时 Django-import-export 失败

django - 使用 django-import-export 实现非规范化关系

python - Heroku 上 django-import-export 的 Tmpfile 错误

html - 将 html 文件、css 文件、几个 javascript 文件和一些图像添加到 django 代码中?

mysql - Django:存储在 MySQL 数据库中的时区不正确

python - 如何在 Django 的查询集中传递两个以上的参数?

django - 在管理中列出过滤器和搜索结果

django - 如何在 django import-export 的导出上添加页眉/页脚?

python - 在新的本地化项目中处理遗留的 django 项目

django - 自定义管理导入表单