【发布时间】:2021-12-28 18:59:59
【问题描述】:
现在我正在通过模型表单上传 .csv 文件,将其保存在模型中,然后将 .csv 中的所有值读取/保存到另一个模型。
在我将所有值都放入另一个模型后,就不需要 .csv,因此我一直在尝试找到一种方法来读取 .csv 并获取值而不将其保存到模型中。
以下是我的基本观点。
感谢任何提示。
def ncaab_csv(request):
form = CsvUpload(request.POST or None, request.FILES or None)
if request.method == "POST":
if form.is_valid():
form.save()
# Get the submitted csv file
games_file = Csv.objects.get(games_entered=False)
with open(games_file.file_name.path, 'r') as f:
reader = csv.reader(f)
for i, row in enumerate(reader):
if i == 0:
pass
else:
try:
game = NCAABGame.objects.get(name__name=row[1],
updated=False,
date=today)
All NCAABGame fields here...
game.save()
return redirect(reverse('ncaab_games'))
else:
messages.error(request, "Failed to save file.")
else:
template = 'management/ncaab/ncaab_csv.html'
context = {
'form': form,
}
return render(request, template, context)
【问题讨论】:
-
“将其保存到模型中”是什么意思?你的意思是
form.save()行吗?在那之后你不要使用form。如果你只是删除那条线它不起作用吗? -
对不起。是的,我为 Csv 文件创建了一个模型,但现在我只想在之后删除它们。我一直在保存它们,然后使用“games_file = Csv.objects.get(games_entered=False)”进行检索。如果我不保存文件,它会起作用吗?
-
我可以做 games_file = request.POST.get('file') 吗?
-
哦,我明白了;
CsvUpload在您的模型中创建一个新对象,然后您可以在Csv.objects中使用它。我会考虑的。