Django view. Загрузить/изменить один CSV/скачать измененный csv

я пытаюсь создать API для некоторой валидации:

  1. Я хочу иметь возможность загрузить один CSV.
  2. Я хочу пропустить этот CSV через некоторые проверки, изменить исходный CSV (добавить 2 новые колонки)
  3. Я хочу иметь возможность загрузить модифицированный 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

Вернуться на верх