Есть ли эквивалент модели экспоната в Python / Django? - PullRequest
0 голосов
/ 30 апреля 2020

Я пробовал поискать его в 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? Есть ли библиотека или она настолько тривиальна, что может быть реализована более сложным методом?

...