【发布时间】:2021-09-16 13:28:16
【问题描述】:
我对 django 和 python 完全陌生,在这里需要您的见解
我正在尝试解析目录中的 csv 文件列表, 在 Files 模型中存储 name 和 row_count,在 Work 模型中存储 csv 的内容(与 Files 关联)
我有两个问题
recs 是在 Files 模型中创建的,但在 Work 模型中没有创建 recs,下面是我的代码,没有抛出任何错误消息
型号
class Files(models.Model):
filename = models.CharField(max_length=100)
work_count = models.IntegerField(default=0)
class Work(models.Model):
proprietary_id = models.IntegerField(default=0)
iswc = models.CharField(max_length=1000)
source = models.CharField(max_length=1000)
title = models.CharField(max_length=1000)
contributors = JSONField()
file = models.ForeignKey(Files,on_delete = models.CASCADE)
查看
root_dir="D:/Django/siva/files"
for file in os.listdir(root_dir):
with open(f'{root_dir}/{file}','r') as csv_file:
csv_reader= csv.DictReader(csv_file,delimiter=',')
Files.objects.create(filename=file, work_count=len(list(csv_reader)))
for row in csv_reader:
file_obj=Files.objects.get(filename=file)
print(file_obj)
Work.objects.create(proprietary_id=row['proprietary_id'],iswc=row['iswc'],source=row['source'],title=row['title'],contributors=row['contributors'],file_=file_obj)
示例 csv 文件
title,contributors,iswc,source,proprietary_id
Shape of You,Edward Christopher Sheeran,T9204649558,sony,1
Je ne sais pas,Obispo Pascal Michel|Florence Lionel Jacques,T0046951705,sony,3
还有什么特定的方法可以设置 root_dir ,所以我不需要跨操作系统更改文件路径结构
【问题讨论】:
-
print(file_obj)是否为每一行打印文件实例? -
是的,获取对象
标签: python django django-models django-rest-framework