Python 如何使用Django检查TSV/CSV格式的数据(非扩展)
在mymodels.py中,我有以下CharFieldPython 如何使用Django检查TSV/CSV格式的数据(非扩展),python,html,django,Python,Html,Django,在mymodels.py中,我有以下CharField class Method1(models.Model): inputfile_param = models.FileField() 我希望我的web应用程序检查输入文件的以下条件: 检查输入文件是否为TSV、CSV或Excel格式 输入文件的第一列和第二列不应为数字格式。 (不包括课程标题) 使用Django/Python是否有一种优雅的方法来实现这一点?您可以在文件字段中添加一个自定义项,您可以在其中执行这些检查。大
class Method1(models.Model):
inputfile_param = models.FileField()
我希望我的web应用程序检查输入文件的以下条件:
- 检查输入文件是否为TSV、CSV或Excel格式
- 输入文件的第一列和第二列不应为数字格式。 (不包括课程标题)
文件字段中添加一个自定义项,您可以在其中执行这些检查。大致如下:
import csv
from django.core.exceptions import ValidationError
def validate_csv(value):
# Probably worth doing this check first anyway
if not value.name.endswith('.csv'):
raise ValidationError('Invalid file type')
with open(value.file, 'r') as csvfile:
try:
csvreader = csv.reader(csvfile)
# Do whatever checks you want here
# Raise ValidationError if checks fail
except csv.Error:
raise ValidationError('Failed to parse the CSV file')
class Method1(models.Model):
inputfile = models.FileField(validators=[validate_csv])