django возвращает переменную обратно пользователю - PullRequest
0 голосов
/ 08 октября 2019

Я пытаюсь добавить на свой сайт инструмент, который хэширует серийный номер, и поэтому мне не требуется модель для этой конкретной части сайта. Я хотел использовать операторы if в шаблоне, чтобы удалить поля формы, кнопку отправки и отобразить хэш на той же странице, однако я не могу понять, как вернуть свой результат обратно в шаблон. Форма, которую я создал, является самой базовой с двумя полями.

Вот мой взгляд:

def voice_search_view(request):
    form = VoiceSearchForm()
    if request.method == 'POST':
        form = VoiceSearchForm(request.POST)
        if form.is_valid():
            hw_number = form.cleaned_data['hw_number']
            ca_serial = form.cleaned_data['ca_serial']

        if len(ca_serial) == 16:
            prehash = hw_number + ca_serial[5:-1] + 'cc_voice'
            territory = 'DE'
        elif len(ca_serial) == 11:
            prehash = hw_number + ca_serial[:-1] + 'cc_voice'
            territory = 'UKIT'

        print(hw_number)
        print(ca_serial)
        print(prehash)
        sha_sig = hashlib.sha256(prehash.encode()).hexdigest()
        print(sha_sig)
        return redirect('/voice_search/')
    return render(request, 'voice_search.html', {'form': form})

как я могу вернуть sha_sig обратно пользователю в идеальном мире,Я бы просто добавил это в контекст, но это кажется невозможным. Принимая во внимание, что я даже не использую никакой CSS для этого, это очень быстрый временный инструмент. Какой самый простой способ вернуть это значение пользователю?

1 Ответ

1 голос
/ 08 октября 2019

Почему вы не можете просто отредактировать свой файл следующим образом?

def voice_search_view(request):
    form = VoiceSearchForm()
    if request.method == 'POST':
        form = VoiceSearchForm(request.POST)
        if form.is_valid():
            hw_number = form.cleaned_data['hw_number']
            ca_serial = form.cleaned_data['ca_serial']

        if len(ca_serial) == 16:
            prehash = hw_number + ca_serial[5:-1] + 'cc_voice'
            territory = 'DE'
        elif len(ca_serial) == 11:
            prehash = hw_number + ca_serial[:-1] + 'cc_voice'
            territory = 'UKIT'

        print(hw_number)
        print(ca_serial)
        print(prehash)
        sha_sig = hashlib.sha256(prehash.encode()).hexdigest()
        print(sha_sig)
            return render(request, 'voice_search.html', context = {'form': form,'sha_sih':sha_sig})
    return render(request, 'voice_search.html', {'form': form})

И затем измените свой шаблон, чтобы проверить, является ли sha_sig определенной переменной, и если это так, выведите также HTML-кодкак sha_sig информация.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...