

def get_field_info(self, field):
    'Adds `related_to` and `nullable` to the metadata response.'
    field_info = OrderedDict()
    for attr in ('required', 'read_only', 'default', 'label'):
        choice_value[attr] = getattr(field, attr)
    if (field_info['default'] is empty):
        field_info['default'] = None
    field_info['nullable'] = field.allow_null
    if hasattr(field, 'choices'):
        field_info['choices'] = [{
            'value': choice_value,
            'display_name': force_text(choice_name, strings_only=True),
        } for (choice_value, choice_name) in field.choices.items()]
    many = False
    if isinstance(field, DynamicRelationField):
        field = field.serializer
    if isinstance(field, ListSerializer):
        field = field.child
        many = True
    if isinstance(field, ModelSerializer):
        type = ('many' if many else 'one')
        field_info['related_to'] = field.get_plural_name()
    else:
        type = self.label_lookup[field]
    field_info['type'] = type
    return field_info

dataset/ETHPy150Open AltSchool/dynamic-rest/dynamic_rest/metadata.py DynamicMetadata.get_field_info/VarMisuse@35/75 `field_info`->`choice_value`