fix(api): ensure val returns at least none

ref: #765
This commit is contained in:
2025-05-20 06:07:34 +09:30
parent 8f097fb44e
commit 0192f2f3a8

View File

@ -63,7 +63,7 @@ class CommonModelSerializer(CommonBaseSerializer):
} }
kb_model_name = self.Meta.model._meta.model_name kb_model_name = self.Meta.model._meta.model_name
if getattr(item, 'kb_model_name'): if getattr(item, 'kb_model_name', None):
kb_model_name = item.kb_model_name kb_model_name = item.kb_model_name
@ -80,26 +80,31 @@ class CommonModelSerializer(CommonBaseSerializer):
if getattr(self.Meta.model, 'save_model_history', True): if getattr(self.Meta.model, 'save_model_history', True):
history_app_label = self.Meta.model._meta.app_label history_app_label = self.Meta.model._meta.app_label
if getattr(item, 'history_app_label'): if getattr(item, 'history_app_label', None):
history_app_label = item.history_app_label history_app_label = item.history_app_label
history_model_name = self.Meta.model._meta.model_name history_model_name = self.Meta.model._meta.model_name
if getattr(item, 'history_model_name'): if getattr(item, 'history_model_name', None):
history_model_name = item.history_model_name history_model_name = item.history_model_name
get_url['history'] = reverse( if(
"v2:_api_v2_model_history-list", history_app_label is not None
request = self._context['view'].request, and history_model_name is not None
kwargs = { ):
'app_label': history_app_label,
'model_name': history_model_name, get_url['history'] = reverse(
'model_id': item.pk "v2:_api_v2_model_history-list",
} request = self._context['view'].request,
) kwargs = {
'app_label': history_app_label,
'model_name': history_model_name,
'model_id': item.pk
}
)
obj = getattr(item, 'get_url_kwargs_notes', None) obj = getattr(item, 'get_url_kwargs_notes', None)
@ -121,7 +126,7 @@ class CommonModelSerializer(CommonBaseSerializer):
note_basename = app_namespace + '_api_v2_' + str(item._meta.verbose_name).lower().replace(' ', '_') + '_note' note_basename = app_namespace + '_api_v2_' + str(item._meta.verbose_name).lower().replace(' ', '_') + '_note'
if getattr(item, 'note_basename'): if getattr(item, 'note_basename', None):
note_basename = app_namespace + item.note_basename note_basename = app_namespace + item.note_basename
@ -129,10 +134,12 @@ class CommonModelSerializer(CommonBaseSerializer):
note_basename = self.Meta.note_basename note_basename = self.Meta.note_basename
get_url['notes'] = reverse( if getattr(item, 'get_url_kwargs_notes', None):
"v2:" + note_basename + "-list",
request = self._context['view'].request, get_url['notes'] = reverse(
kwargs = item.get_url_kwargs_notes() "v2:" + note_basename + "-list",
) request = self._context['view'].request,
kwargs = item.get_url_kwargs_notes()
)
return get_url return get_url