@4elive8
Positive

Как использовать данные, которые ввел пользователь в формах?

Добрый день друзья! Встрял в формах, не могу понять как использовать введенные пользователем данные. Представим есть 2 input-а и 2 Choice-a, пользователь заполнил все данные, а дальше не знаю что делать. Что писать во views и как можно сохранить их в переменные? Спасибо!
Тут мой файл forms.py
class ContactForm(forms.Form):
    CHOICES = (('Option 1', 'Option 1'), ('Option 2', 'Option 2'))
    field = forms.ChoiceField(choices=CHOICES)
    fdfd = forms.ChoiceField(choices=CHOICES)
    subject = forms.CharField(max_length=100)
    sdfsdf = forms.IntegerField(max_length=3)
  • Вопрос задан
  • 134 просмотра
Решения вопроса 1
@riki-tiki
Что писать во views сильно зависит от выбранного Вами стиля: использовать классы или функции.
Предположу, что функции.

Самая классическая схема обработки формы (взято с документации):
def get_name(request):
    # if this is a POST request we need to process the form data
    if request.method == 'POST':
        # create a form instance and populate it with data from the request:
        form = NameForm(request.POST)
        # check whether it's valid:
        if form.is_valid():
            # process the data in form.cleaned_data as required
            # ...
            # redirect to a new URL if you want:
            return HttpResponseRedirect('/thanks/')
    # if a GET (or any other method) we'll create a blank form
    else:
        form = NameForm()
    return render(request, 'name.html', {'form': form})


При этом в месте кода (# process the data in form.cleaned_data as required) уже как раз и надо обрабатывать полученные данные.
form.cleaned_data - это атрибут экземпляра вашего класса формы. И этот атрибут есть словарик, в котором ключи - это имена полей.
Например, subject = form.cleaned_data['subject']
Дальше, думаю, справитесь.

А вообще пройдите раздел First steps и Forms документации https://docs.djangoproject.com/en/2.0/
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы