Django view. Загрузить/изменить один CSV/скачать измененный csv
я пытаюсь создать API для некоторой валидации:
- Я хочу иметь возможность загрузить один CSV.
- Я хочу пропустить этот CSV через некоторые проверки, изменить исходный CSV (добавить 2 новые колонки)
- Я хочу иметь возможность загрузить модифицированный CSV (с моими 2 новыми колонками)
Я реализовал первую часть, создал валидацию, но после загрузки я получил тот же результат (файл не был изменен). Может ли кто-нибудь помочь мне с этой частью? Вот мой код для моего представления:
def upload(request):
context = {}
if request.method == 'POST':
promo2 = request.FILES['document']
if request.method == 'GET':
promo2 = promo2[~promo2['COMP_ARTICLE_PROMO_TYPE'].isna()]
for index, row in promo2.iterrows():
promo2 = pd.read_csv(promo2, sep=';')
if (row['COMP_ARTICLE_PROMO_NAME'] == '-20%') or (row['COMP_ARTICLE_PROMO_NAME'] == '20.0% korting'):
if 0.95 < round(row['COMP_ART_PRICE'] * 0.80, 2) / row['COMP_ARTICLE_PROMO_PRICE_PER_UNIT'] < 1.05:
promo2.loc[index, 'VALIDATE_ARTICLE_PROMO_PRICE_PER_UNIT'] = 'GOOD'
else:
promo2.loc[index, 'VALIDATE_ARTICLE_PROMO_PRICE_PER_UNIT'] = 'WRONG'
if (row['COMP_ARTICLE_PROMO_NAME'] == '-20%') or (row['COMP_ARTICLE_PROMO_NAME'] == '20.0% korting'):
if row['COMP_ARTICLE_PROMO_PERCENT'] == 20:
promo2.loc[index, 'VALIDATE_ARTICLE_PROMO_PERCENT'] = 'GOOD'
else:
promo2.loc[index, 'VALIDATE_ARTICLE_PROMO_PERCENT'] = 'WRONG'
#fs = FileSystemStorage()
#name = fs.save(promo2.name, promo2)
#context['url'] = fs.url(name)
#promo2.to_excel(response, engine='xlsxwriter', index=False)
fs = FileSystemStorage()
name = fs.save(promo2.name, promo2)
context['url'] = fs.url(name)
return render(request, 'upload.html', context)
Here is my front end part and here i want to have another button to download the CSV file modified (after he will go through my validations)
https://i.stack.imgur.com/mk5x1.png