Django - Как получить доступ к POST данным в GET методе в части представления без сохранения данных в базе данных?

У меня есть что-то вроде:

    def my_view(request):
       if request.method == POST
           #upload a json file and parse data from it
           parsed_data = parser.parse()
       else:
           #define some forms and variables
       context = {
           'parsed_data' = !what do I put here??!
       }
       return render(request, 'file.html', context=context)

Что я должен указать в контексте? Если метод GET, то parsed_data не будет существовать, если POST, то parsed_data будет существовать, но не попадет в db. Как мне сохранить его значение, не сохраняя его в базе данных?

Если я правильно понял вопрос, код шаблона просит вас разобрать некоторые json данные, если метод POST. Если это не так, возможно это может быть GET или PUT, тогда вам нужно написать код, который является своего рода управлением формой. Тогда контекстом будет то, что вы хотите вернуться к вашему шаблону.

Например, вы можете взять одну функцию моего проекта>>>

def create_auctions(request):
    if request.method == "POST":
        if not request.user.is_authenticated:
            return HttpResponseRedirect(reverse("login_view"), {"message": "Please login to create an auction."})
        user = request.user
        title = request.POST['title']
        description = request.POST['description']
        image_url = request.POST['image_url']
        category = request.POST['category']
        starting_bid = request.POST['starting_bid']
        created = AuctionList.objects.create(user=user,title=title,description=description,image_url=image_url,category=category,starting_bid=starting_bid)
        created.save()
        return HttpResponseRedirect(reverse("index"))
    return render(request, "auctions/create.html")

Здесь пользователь, заголовок, описание - все это контекст

Если вы внимательно посмотрите, контекст находится вне оператора else. Это означает, что вам нужно только добавить разобранные данные в словарь контекста, который вы получили из метода POST. Для вашего кода в 'parsed_data' будет parsed_data, как показано ниже>>>

def my_view(request):
       if request.method == POST
           #upload a json file and parse data from it
           parsed_data = parser.parse()
       else:
           #define some forms and variables
       context = {
           'parsed_data' = parsed_data
       }
       return render(request, 'file.html', context=context)
Вернуться на верх