django-parlor

Django model translations with even less nasty hacks.
git clone https://git.ce9e.org/django-parlor.git

commit
e6f8358ac9d884593784c1f75b9b7a4455a1389d
parent
2cf49e38ebaa3da0281ebafdd8d2327c9074ffe7
Author
Tobias Bengfort <tobias.bengfort@posteo.de>
Date
2025-08-07 07:31
refactor: exit early in getattr

Diffstat

M parlor/models.py 11 +++++------

1 files changed, 5 insertions, 6 deletions


diff --git a/parlor/models.py b/parlor/models.py

@@ -25,13 +25,12 @@ class TranslatableModel(models.Model):
   25    25 
   26    26     def __getattr__(self, key):
   27    27         fields = self.translations.model._meta.get_fields()
   28    -1         if key in (f.attname for f in fields):
   29    -1             try:
   30    -1                 return getattr(self.translation, key)
   31    -1             except self.translations.model.DoesNotExist:
   32    -1                 return 'not translated'
   33    -1         else:
   -1    28         if key not in (f.attname for f in fields):
   34    29             raise AttributeError
   -1    30         try:
   -1    31             return getattr(self.translation, key)
   -1    32         except self.translations.model.DoesNotExist:
   -1    33             return 'not translated'
   35    34 
   36    35     @classmethod
   37    36     def get_language_field(cls):