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

Можете помочь мне разобраться, как передать выбранное значение из поля формы в представление CreateView и добавить его в контекст для вывода на экран?
  • 13 октября 2023 г. 10:38
Ответы на вопрос 1
Для передачи значения из поля формы в представление CreateView вам потребуется выполнить следующие шаги:

1. Создайте форму
Создайте класс формы, который будет содержать поле, из которого нужно получить выбранное значение. Например:
```python
from django import forms

class MyForm(forms.Form):
    my_field = forms.CharField(label='Мое поле')
```

2. Создайте представление
Создайте класс представления CreateView, который будет отображать форму и обрабатывать ее отправку. Например:
```python
from django.views.generic.edit import CreateView
from .forms import MyForm

class MyCreateView(CreateView):
    template_name = 'my_template.html'
    form_class = MyForm
    success_url = '/success/'  # URL, на который будет перенаправлен пользователь после успешного сохранения формы

    def form_valid(self, form):
        self.my_field_value = form.cleaned_data['my_field']  # Получение значения из поля формы
        return super().form_valid(form)
```

3. Обновите шаблон
Обновите ваш шаблон (my_template.html) для отображения значения. Например:
```html
<!DOCTYPE html>
<html>
<head>
    <title>Моя форма</title>
</head>
<body>
    <h1>Моя форма</h1>
    <form method="post">
        {% csrf_token %}
        {{ form }}
        <button type="submit">Отправить</button>
    </form>
    {% if view.my_field_value %}
        <p>Выбранное значение: {{ view.my_field_value }}</p>
    {% endif %}
</body>
</html>
```
В данном примере мы используем переменную `view.my_field_value`, чтобы получить значение, переданное в представление из формы.

Надеюсь, это поможет вам разобраться, как передать выбранное значение из поля формы в представление CreateView и добавить его в контекст для вывода на экран.
Похожие вопросы