42 lines
1.4 KiB
Diff
42 lines
1.4 KiB
Diff
# django__django-13710
|
|
# Loki Mode Multi-Agent Patch
|
|
# Attempts: 1
|
|
|
|
--- a/django/contrib/admin/options.py
|
|
+++ b/django/contrib/admin/options.py
|
|
@@ -1,6 +1,6 @@
|
|
import copy
|
|
import json
|
|
-from functools import partial, update_wrapper
|
|
+from functools import lru_cache, partial, update_wrapper
|
|
from urllib.parse import quote as urlquote
|
|
|
|
from django import forms
|
|
@@ -2012,6 +2012,14 @@ class InlineModelAdmin(BaseModelAdmin):
|
|
classes = None
|
|
template = None
|
|
|
|
+ @lru_cache(maxsize=1)
|
|
+ def _has_explicit_verbose_name(self):
|
|
+ """Check if verbose_name was explicitly set on this class."""
|
|
+ for cls in type(self).__mro__:
|
|
+ if 'verbose_name' in cls.__dict__:
|
|
+ return cls is not InlineModelAdmin
|
|
+ return False
|
|
+
|
|
@property
|
|
def verbose_name(self):
|
|
return self._verbose_name or self.model._meta.verbose_name
|
|
@@ -2022,7 +2030,11 @@ class InlineModelAdmin(BaseModelAdmin):
|
|
|
|
@property
|
|
def verbose_name_plural(self):
|
|
- return self._verbose_name_plural or self.model._meta.verbose_name_plural
|
|
+ if self._verbose_name_plural:
|
|
+ return self._verbose_name_plural
|
|
+ if self._has_explicit_verbose_name():
|
|
+ return format_lazy('{}s', self._verbose_name)
|
|
+ return self.model._meta.verbose_name_plural
|
|
|
|
@verbose_name_plural.setter
|
|
def verbose_name_plural(self, value):
|