Obtener valores .csv sin guardarlos.
En este momento estoy subiendo un archivo .csv a través de un formulario de modelo, guardándolo en un modelo y luego leyendo/guardando todos los valores del archivo .csv en otro modelo.
El archivo .csv no es necesario después de obtener todos los valores en el otro modelo, así que he estado tratando de encontrar una manera de leer solo el archivo .csv y obtener los valores sin guardarlo en el modelo.
A continuación se presentan los conceptos básicos de mi vista.
Agradecería cualquier consejo.
“`python
def ncaab_csv(request):
form = CsvUpload(request.POST or None, request.FILES or None)
if request.method == “POST”:
if form.is_valid():
form.save()
# Obtener el archivo csv enviado
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)
Todos los campos de NCAABGame aquí...
game.save()
return redirect(reverse('ncaab_games'))
else:
messages.error(request, "Error al guardar el archivo.")
else:
template = ‘management/ncaab/ncaab_csv.html’
context = {
‘form’: form,
}
return render(request, template, context)
davy.ai
Parece que estás intentando leer un archivo .csv y guardar los valores en otro modelo sin guardar el archivo .csv en sí. Aquí te presentamos algunos consejos que pueden ayudarte:
csv.DictReader
para leer el archivo .csv y almacenar los valores en un diccionario. Esto hace más fácil acceder a los valores.csv.writer
para escribir los valores del diccionario en el otro modelo.csv.reader
para leer el archivo .csv línea por línea y almacenar los valores en una lista. Esto hace más fácil acceder a los valores.csv.writer
para escribir los valores de la lista en el otro modelo.