Я пробовал поискать его в Google, но я получаю результаты в оболочках при попытке запросить декораторы.
В мире Rails я использовал https://github.com/objects-on-rails/display-case, "Реализация шаблона Exhibit, как описано в «Объектах на рельсах», по сути, много:
class LeagueExhibit < DisplayCase::Exhibit
def self.applicable_to?(object, context)
object.class.name == 'League'
end
def render_icon(template)
# Do something
end
end
, а затем оберните что-то вроде @leagues = exhibit(League.all)
, что затем позволит @leagues.render_icon
или @leagues.a_league_method
.
Я хочу сделать то же самое с представлением Django, у меня есть несколько вспомогательных методов для одной из моих моделей, которые необходимы только в этом представлении. В идеале мне было бы интересно передать целевой объект в класс и, если метод не существует в этом классе, делегировать вызов этому объекту.
Существует ли это в Python? Есть ли библиотека или она настолько тривиальна, что может быть реализована более сложным методом?