У меня есть класс
class SomeMixin:
permissions = (SomePermission,)
methods = ('GET',)
@list_route(methods=methods, url_path='en', permission_classes=permissions)
def en_list(self):
return get_translated_objects(self, 'en')
@list_route(methods=methods, url_path='ru', permission_classes=permissions)
def ru_list(self):
return get_translated_objects(self, 'ru')
@detail_route(methods=methods, url_path='en', permission_classes=permissions)
def en_detail(self):
return get_translated_object(self.get_object(), 'en')
@detail_route(methods=methods, url_path='ru', permission_classes=permissions)
def ru_detail(self):
return get_translated_object(self.get_object(), 'ru')
В будущем у меня может быть больше языков, и это не очень хорошее решение.
Я думал создать цикл по списку языков и добавить методы в класс с помощью setattr (self, func_name, func), например:
langs = ('en', 'ru')
for lang in langs:
setattr(self, func.__name__, func)
Но мне нужно добавить еще и декоратор к каждой функции, как я могу это сделать?