В моем проекте Django «Источники» у меня есть приложение «Бюллетени».У меня есть представление "model_form_upload", внутри которого я получаю имя загруженного файла ("csvFilename"), когда я загружаю его.
views.py
from bulletins.forms import ErnageForm
from bulletins.models import ErnageModel
from bulletins.pretreatment import pretreatment
def model_form_upload(request):
if request.method == 'POST':
form = ErnageForm(request.POST, request.FILES)
if form.is_valid():
form.save()
for filename, file in request.FILES.items():
csvFilename = file.name
resultPretreatment = pretreatment()
print(resultPretreatment)
return redirect('proceed_FT')
else:
return redirect('upload_fail')
else:
form = ErnageForm()
return render(request, 'bulletins/upload_csv.html', {'form': form})
Кроме этого, у меня есть сценарий python "pretreatment.py", который выполняет несколько преобразований pandas-dataframe в моем файле csv.
pretreatment.py
def pretreatment(csvFileToTreat="..."
#... all the transformations with pandas dataframes...
df.to_csv(txtExportFilePath, index=False, header=None, sep='\t')
models.py
class ErnageModel(models.Model):
csv = models.FileField(upload_to="METEO ERNAGE/{0}/{1}".format(yearToTreat,monthToTreat))
Мое имя csvFilename всегда будет строкой этого типа: "Ernageyyyymm.csv".
Мой вопрос здесь такой: как я могу собрать мою переменную csvFilename из функции views.model_form_upload, чтобы использовать информацию о ее дате в переменных сценария python предварительной обработки "csvFileToTreat" и "txtExportFilePath".
Эти два типа имеют тип "path / Ernage {0} {1} .format (yearToTreat, monthToTreat).
Поскольку я должен использовать его каждый месяц, я хотел бы загружать свои файлы в media/METEO ERNAGE/{0}/{1}".format(yearNumber,monthNumber)
, как вы можете видеть в FileField upload_to, а затем все, что происходит в этом каталоге. Таким образом, предварительная обработка заряжает загруженный файл, а затем экспортирует в него также.
Надеюсь, все это как можно более ясно, спасибоза вашу помощь.