Как передать «текстовый» ввод формы в другую переменную, которая находится в views.py - PullRequest
0 голосов
/ 19 сентября 2018

В моем проекте Django я должен взять входные данные из форм и передать их в качестве аргумента функции, которая находится в views.py .Как мне это сделать?

Мой код views.py

from django.shortcuts import render,render_to_response
from django.http import Http404, HttpResponse, HttpResponseRedirect
from search_engine import query
from .forms import SearchForm


def query_input(request):
    if request.method == "POST":

        form = SearchForm(request.POST)

    else:
        form = SearchForm()
        return render(request, 'search.html', {'form': form})

def search_results(request):
    search_results = query.results(# text input from forms)
    a = "<br /><br />".join(word for word in search_results)
    return HttpResponse(a)

Мой код forms.py

from django import forms

class SearchForm(forms.Form):
    your_query = forms.CharField(max_length=100)

1 Ответ

0 голосов
/ 19 сентября 2018

После того, как вы проверили, что метод запроса является POST, вы можете проверить форму и затем получить доступ к ее атрибутам следующим образом:

В views.py:

if request.method = "POST":
    form = SearchForm(request.POST)
    if form.is_valid():
        search_text = form.cleaned_data['search_text']
        # code from search_results function to return HTTP Response

Ознакомьтесь с документацией наформы и просмотр здесь для получения дополнительной информации.

...