Add support for serializing model instances in the action

dynamic forms.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
This commit is contained in:
Roberto Rosario
2017-08-26 02:01:27 -04:00
parent f20810b2ae
commit 3b7f25478a

View File

@@ -3,6 +3,7 @@ from __future__ import absolute_import, unicode_literals
import json
from django import forms
from django.db.models import Model
from django.db.models.query import QuerySet
from django.forms.formsets import formset_factory
from django.utils.translation import ugettext_lazy as _
@@ -64,7 +65,12 @@ class WorkflowStateActionDynamicForm(DynamicModelForm):
)
if isinstance(action_data[field['name']], QuerySet):
# Flatten the queryset to a list of ids
action_data[field['name']] = list(action_data[field['name']].values_list('id', flat=True))
action_data[field['name']] = list(
action_data[field['name']].values_list('id', flat=True)
)
elif isinstance(action_data[field['name']], Model):
# Store only the ID of a model instance
action_data[field['name']] = action_data[field['name']].pk
data['action_data'] = json.dumps(action_data)
return data