From e9259ae4c1ac0ff49a7ff97e068719903d52e438 Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Thu, 14 Feb 2019 05:04:32 +0100 Subject: Query optimization for JSON dynamic fields --- ishtar_common/forms.py | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) (limited to 'ishtar_common/forms.py') diff --git a/ishtar_common/forms.py b/ishtar_common/forms.py index 57f48ff95..7f9c8a400 100644 --- a/ishtar_common/forms.py +++ b/ishtar_common/forms.py @@ -269,18 +269,20 @@ class CustomForm(BSForm): :return: ((order1, key1, field1), ...) """ fields = [] - for field in custom_form.json_fields.values( - "order", "label", "json_field__name", "json_field__value_type", - "help_text", "json_field__key").order_by('order').all(): - key = "data__" + field["json_field__key"] + q = custom_form.json_fields.values( + 'label', 'help_text', 'order', 'json_field__key', + 'json_field__value_type', 'json_field__name', + ).order_by('order') + for field in q.all(): + key = "data__" + field['json_field__key'] field_cls, widget = forms.CharField, None - if field["json_field__value_type"] in JSON_VALUE_TYPES_FIELDS: + if field['json_field__value_type'] in JSON_VALUE_TYPES_FIELDS: field_cls, widget = JSON_VALUE_TYPES_FIELDS[ - field["json_field__value_type"]] - attrs = {'label': field["label"] or field["json_field__name"], + field['json_field__value_type']] + attrs = {'label': field['label'] or field['json_field__name'], 'required': False} - if field["help_text"]: - attrs['help_text'] = field["help_text"] + if field['help_text']: + attrs['help_text'] = field['help_text'] if widget: attrs['widget'] = widget() if field_cls == widgets.Select2DynamicField: -- cgit v1.2.3