Как изменить значение поля django после отправки формы?

Пользователь

от kenya , в категории: Python , 2 месяца назад

Как изменить значение поля django после отправки формы?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от marlen , 2 месяца назад

@kenya 

Для изменения значения поля в Django после отправки формы, можно использовать следующий подход:

  1. Создайте форму с полем, значение которого вы хотите изменить. Например, вы можете создать модель формы с помощью ModelForm:
1
2
3
4
5
6
7
from django import forms
from .models import MyModel

class MyModelForm(forms.ModelForm):
    class Meta:
        model = MyModel
        fields = ['my_field']


  1. Обновите значение поля на основе данных, полученных из формы. Для этого вы можете переопределить метод form_valid() в вашем представлении:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
from django.views.generic.edit import FormView

class MyView(FormView):
    form_class = MyModelForm
    template_name = 'my_template.html'
    success_url = '/success/'

    def form_valid(self, form):
        # Обновите значение поля на основе данных из формы
        my_field_value = form.cleaned_data['my_field']
        updated_value = my_field_value + ' (изменено)'
        form.instance.my_field = updated_value
        # Сохраните модель
        form.instance.save()
        return super().form_valid(form)


  1. Обновление значения поля можно провести в любом другом методе представления, если это требуется для вашего случая использования.


Обратите внимание, что вы должны изменить класс представления и шаблон в примере выше в соответствии с вашими потребностями.