mirror of
https://github.com/netbox-community/netbox.git
synced 2026-01-25 04:50:00 -06:00
Merge pull request #4797 from netbox-community/4695_fix_api_cable_choices_termination_types
Fixes #4695 - Add Metadata class that returns content type choices
This commit is contained in:
19
netbox/utilities/metadata.py
Normal file
19
netbox/utilities/metadata.py
Normal file
@@ -0,0 +1,19 @@
|
||||
from rest_framework.metadata import SimpleMetadata
|
||||
from django.utils.encoding import force_str
|
||||
from utilities.api import ContentTypeField
|
||||
|
||||
|
||||
class ContentTypeMetadata(SimpleMetadata):
|
||||
|
||||
def get_field_info(self, field):
|
||||
field_info = super().get_field_info(field)
|
||||
if hasattr(field, 'queryset') and not field_info.get('read_only') and isinstance(field, ContentTypeField):
|
||||
field_info['choices'] = [
|
||||
{
|
||||
'value': choice_value,
|
||||
'display_name': force_str(choice_name, strings_only=True)
|
||||
}
|
||||
for choice_value, choice_name in field.choices.items()
|
||||
]
|
||||
field_info['choices'].sort(key=lambda item: item['display_name'])
|
||||
return field_info
|
||||
Reference in New Issue
Block a user