diff --git a/lib/xos-genx/xosgenx/jinja2_extensions/django.py b/lib/xos-genx/xosgenx/jinja2_extensions/django.py
index 593fefb..2632c00 100644
--- a/lib/xos-genx/xosgenx/jinja2_extensions/django.py
+++ b/lib/xos-genx/xosgenx/jinja2_extensions/django.py
@@ -168,3 +168,27 @@
         return [map(str.strip, validation.split(':')) for validation in unquote(options['validators']).split(',')]
     except KeyError:
         return []
+
+def xproto_optioned_fields_to_list(fields, option, val):
+    """
+    List all the field that have a particural option
+    :param fields: (list) an array of message fields
+    :param option: (string) the option to look for
+    :param val: (any) the value of the option
+    :return: list of strings, field names where option is set
+    """
+
+    optioned_fields = []
+    for f in fields:
+        option_names = []
+        for k, v in f['options'].items():
+            option_names.append(k)
+
+        if option in  option_names and f['options'][option] == val:
+            optioned_fields.append(f['name'])
+
+    return optioned_fields
+
+# TODO
+# - in modeldefs add info about this fields
+# - update the gui to have this fields as readonly
diff --git a/lib/xos-genx/xosgenx/targets/django.xtarget b/lib/xos-genx/xosgenx/targets/django.xtarget
index 8ef8e5f..13d37f9 100644
--- a/lib/xos-genx/xosgenx/targets/django.xtarget
+++ b/lib/xos-genx/xosgenx/targets/django.xtarget
@@ -44,6 +44,11 @@
 class {{ m.name }}{{ legacy_tag }}{{ xproto_base_def(m.name, m.bases) }}:
   plural_name = "{{ xproto_pluralize(m) }}"
 
+  {%- set feedback_state_fields = xproto_optioned_fields_to_list(xproto_base_fields(m, proto.message_table) + m.fields, 'feedback_state', 'True')  %}
+  {%- if feedback_state_fields|length > 0 %}
+  feedback_state_fields = {{ feedback_state_fields }}
+  {%- endif %}
+
 {#  {% if m.options.no_sync or m.options.no_policy %}#}
 {#  {% if m.options.no_sync -%}#}
 {#  # Removing synchronizer feedback state from model#}
diff --git a/lib/xos-genx/xosgenx/targets/modeldefs.xtarget b/lib/xos-genx/xosgenx/targets/modeldefs.xtarget
index 3b0790a..15c43d7 100644
--- a/lib/xos-genx/xosgenx/targets/modeldefs.xtarget
+++ b/lib/xos-genx/xosgenx/targets/modeldefs.xtarget
@@ -29,6 +29,7 @@
     {% endfor %}
   {%- endif %}
     type: {{ xproto_type_to_ui_type(f) }}
+    read_only: {{ xproto_is_true(f.options.feedback_state) }}
     {% set validators = xproto_validators(f) -%}
     {% if validators -%}
     validators:
diff --git a/lib/xos-genx/xosgenx/targets/service.xtarget b/lib/xos-genx/xosgenx/targets/service.xtarget
index a9ca934..ed78ff1 100644
--- a/lib/xos-genx/xosgenx/targets/service.xtarget
+++ b/lib/xos-genx/xosgenx/targets/service.xtarget
@@ -41,6 +41,11 @@
 class {{ m.name }}{{ legacy_tag }}{{ xproto_base_def(m.name, m.bases, legacy_tag, proto.message_names) }}:
   plural_name = "{{ xproto_pluralize(m) }}"
 
+  {%- set feedback_state_fields = xproto_optioned_fields_to_list(xproto_base_fields(m, proto.message_table) + m.fields, 'feedback_state', 'True')  %}
+  {%- if feedback_state_fields|length > 0 %}
+  feedback_state_fields = {{ feedback_state_fields }}
+  {%- endif %}
+
   KIND = {{ xproto_first_non_empty([m.options.kind, options.kind, options.name, "Set a kind in your xproto!"]) }}
 
   {% if m.options.owner_class_name %}
