Я использую django -образную форму (https://pypi.org/project/django-shapeshifter/) с двумя формами, FormA и FormB - они объединены в одну форму. Это формы моделей, поэтому я использую MultiModelFormView из shapehifter.
views.py
class AddFormsView(LoginRequiredMixin, MultiSuccessMessageMixin, MultiModelFormView):
form_classes = (zooForm, animalMetadataForm)
template_name = 'zoos/add_zoo_shapeshift.html'
success_url = '/'
def forms_valid(self):
forms = self.get_forms()
raven_form = forms['ravenmetadataform']
recording_form = forms['recordingform']
if recording_form:
recording_form.data['created_by'] = self.request.user
return super(AddFormsView, self).forms_valid()
Если я пытаюсь установить данные в методе forms_valid, меня предупреждают что This QueryDict instance is immutable
При использовании обычных форм моделей (то есть без смещения формы) я предварительно установил значения форм в методе form_valid
, например:
def form_valid(self, form):
context = self.get_context_data()
animal_data = context['animal_data']
with transaction.atomic():
form.instance.created_by = self.request.user
Я думаю, эквивалент не т поддерживается