我正在尝试在我的应用程序中实现 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/