Handle case where serializer does not have 'Meta' class (#7360)

This commit is contained in:
Oliver 2024-05-28 00:34:59 +10:00 committed by GitHub
parent b7b666b7f0
commit eb3c8dd255
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 28 additions and 7 deletions

View File

@ -147,14 +147,15 @@ class InvenTreeMetadata(SimpleMetadata):
serializer_info = super().get_serializer_info(serializer)
# Look for any dynamic fields which were not available when the serializer was instantiated
for field_name in serializer.Meta.fields:
if field_name in serializer_info:
# Already know about this one
continue
if hasattr(serializer, 'Meta'):
for field_name in serializer.Meta.fields:
if field_name in serializer_info:
# Already know about this one
continue
if hasattr(serializer, field_name):
field = getattr(serializer, field_name)
serializer_info[field_name] = self.get_field_info(field)
if hasattr(serializer, field_name):
field = getattr(serializer, field_name)
serializer_info[field_name] = self.get_field_info(field)
model_class = None

View File

@ -150,6 +150,11 @@ class PluginConfigEmptySerializer(serializers.Serializer):
class PluginReloadSerializer(serializers.Serializer):
"""Serializer for remotely forcing plugin registry reload."""
class Meta:
"""Meta for serializer."""
fields = ['full_reload', 'force_reload', 'collect_plugins']
full_reload = serializers.BooleanField(
required=False,
default=False,
@ -189,6 +194,11 @@ class PluginActivateSerializer(serializers.Serializer):
model = PluginConfig
class Meta:
"""Metaclass for serializer."""
fields = ['active']
active = serializers.BooleanField(
required=False,
default=True,
@ -213,6 +223,11 @@ class PluginActivateSerializer(serializers.Serializer):
class PluginUninstallSerializer(serializers.Serializer):
"""Serializer for uninstalling a plugin."""
class Meta:
"""Metaclass for serializer."""
fields = ['delete_config']
delete_config = serializers.BooleanField(
required=False,
default=True,
@ -253,6 +268,11 @@ class NotificationUserSettingSerializer(GenericReferencedSettingSerializer):
class PluginRegistryErrorSerializer(serializers.Serializer):
"""Serializer for a plugin registry error."""
class Meta:
"""Meta for serializer."""
fields = ['stage', 'name', 'message']
stage = serializers.CharField()
name = serializers.CharField()
message = serializers.CharField()