Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django导入导出有错误“;Tablib没有格式';无';或者它没有注册;_Django_Django Import Export - Fatal编程技术网

Django导入导出有错误“;Tablib没有格式';无';或者它没有注册;

Django导入导出有错误“;Tablib没有格式';无';或者它没有注册;,django,django-import-export,Django,Django Import Export,我试图在我的应用程序中实现csv导入,但出现此错误, Tablib没有格式“None”或未注册。 我正在使用python 3.5和Django 2.2。 我在Python2.7和Django 1.8中尝试了相同的代码,效果很好。我的代码有问题吗 我的模型: class Stock(models.Model): category = models.ForeignKey(Category, on_delete=models.CASCADE, blank=True) item_name

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

我正在使用python 3.5和Django 2.2。 我在Python2.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>
以下几点需要注意:

imported_data=Dataset().load(new_stock.read().decode(),format='csv',headers=False)
打印(导入的数据)

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

谢谢您的回复。错误现已消失,但数据未保存到数据库中。我猜CSV文件有问题。我现在正在尝试限制字段并进行另一项测试。如何测试它是否为有效的CSV数据?如果数据集的创建正常,则应该可以。只需添加
print(imported_data)
即可,如果它呈现格式化数据,则它是有效的,这可能会帮助您调试数据未导入的原因(确保属性和列设置正确,确保字段已定义)
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,