21 lines
956 B
Django/Jinja
21 lines
956 B
Django/Jinja
{% macro construct_template(construct_function, property, source, initial_value=None) %}
|
|
{% if property.required and not property.nullable %}
|
|
{{ property.python_name }} = {{ construct_function(property, source) }}
|
|
{% else %}{# Must be nullable OR non-required #}
|
|
_{{ property.python_name }} = {{ source }}
|
|
{{ property.python_name }}: {{ property.get_type_string() }}
|
|
{% if property.nullable %}
|
|
if _{{ property.python_name }} is None:
|
|
{{ property.python_name }} = {% if initial_value != None %}{{ initial_value }}{% else %}None{% endif %}
|
|
|
|
{% endif %}
|
|
{% if not property.required %}
|
|
{% if property.nullable %}elif{% else %}if{% endif %} isinstance(_{{ property.python_name }}, Unset):
|
|
{{ property.python_name }} = {% if initial_value != None %}{{ initial_value }}{% else %}UNSET{% endif %}
|
|
|
|
{% endif %}
|
|
else:
|
|
{{ property.python_name }} = {{ construct_function(property, "_" + property.python_name) }}
|
|
{% endif %}
|
|
{% endmacro %}
|