- commit
- 5a96ff555e209e53c1a251eaf1872b1a92a5c35b
- parent
- a6309429137149d3e468b4fea43a9955c275394b
- Author
- Tobias Bengfort <tobias.bengfort@posteo.de>
- Date
- 2025-08-07 07:01
refactor: rm TranslationFallback
Diffstat
| M | parlor/models.py | 26 | +++++++++----------------- |
1 files changed, 9 insertions, 17 deletions
diff --git a/parlor/models.py b/parlor/models.py
@@ -1,13 +1,7 @@1 -1 from django.core.exceptions import ObjectDoesNotExist2 1 from django.db import models 3 2 from django.utils.translation import get_language 4 3 5 46 -1 class TranslationFallback:7 -1 def __getattr__(self, key):8 -1 return 'not translated'9 -110 -111 5 class TranslatableModel(models.Model): 12 6 class Meta: 13 7 abstract = True @@ -15,20 +9,15 @@ class TranslatableModel(models.Model): 15 9 @property 16 10 def translation(self): 17 11 if not self.pk:18 -1 return TranslationFallback()19 -120 -1 lang = get_language()-1 12 raise self.translations.model.DoesNotExist 21 13 22 14 translation = self.__dict__.get('_translation')23 -1 if translation and translation.language_code == lang:-1 15 if translation and translation.language_code == get_language(): 24 16 return translation 25 1726 -1 try:27 -1 translation = self.translations.get(language_code=lang)28 -1 self.__dict__['_translation'] = translation29 -1 return translation30 -1 except ObjectDoesNotExist:31 -1 return TranslationFallback()-1 18 translation = self.translations.get(language_code=get_language()) -1 19 self.__dict__['_translation'] = translation -1 20 return translation 32 21 33 22 def refresh_from_db(self, *args, **kwargs): 34 23 self.__dict__.pop('_translation', None) @@ -37,7 +26,10 @@ class TranslatableModel(models.Model): 37 26 def __getattr__(self, key): 38 27 fields = self.translations.model._meta.get_fields() 39 28 if key in (f.attname for f in fields):40 -1 return getattr(self.translation, key)-1 29 try: -1 30 return getattr(self.translation, key) -1 31 except self.translations.model.DoesNotExist: -1 32 return 'not translated' 41 33 else: 42 34 raise AttributeError 43 35