Comments (1)
So I've managed to resolve this issue myself with a change in code design and nesting 'Presenter' classes (but would be interesting to see how others are doing this)...
+class Feed(Presenter):
def prepare_view(self, **params):
self.view = View()
self.view.template_path = '/app/static/views/feed.mustache'
self.view.teasers = self.prepare_teasers()
return self
def prepare_teasers(self):
return [Teaser(Context(result)) for result in self.post.results]
where
self.post
is set on thePresenter
and provides the raw data we're looking to consume
The Teaser
then works effectively the same as this top level Feed
presenter, the difference is it's given a different 'context' object (i.e. self.post
value) to use as its data source:
class Teaser(Presenter):
def prepare_view(self, **params):
self.view = View()
self.view.template_path = '/app/static/components/teaser/teaser.mustache'
self.view.username = self.post.author
self.view.uri = self.post.uri
self.view.title = self.post.name
return self
self.post
is now one of the elements from insideself.post.results
from the top levelFeed
presenter
Our code starts at the top level presenter (Feed
) and starts recursively rendering each nested Presenter it finds
from pystache.
Related Issues (20)
- Generalise isinstance dict check HOT 1
- Include wheels on the PyPI release
- Stale documentation in context.py: inexistant "default" parameter
- EAFP in pystache.context:_get_value to support defaultdicts HOT 1
- Is this project dead? HOT 20
- Possible to find all imports and extends ?
- Accessing Array item by index in template
- How to use for loop through a list in mustache?
- Render template from database causing TemplateNotFoundError HOT 1
- Missing tags - instead of replacing with empty string, leave them untouched to be rendered later
- ImportError: No module named pystache HOT 1
- The README link to Distribute is outdated HOT 2
- How to get required/optional fields? HOT 1
- just want '&' but got '&'
- ur"" is not valid in Python 3 HOT 2
- `unicode` is not a valid type name in Python 3 HOT 1
- In an example like this pystache not rendering correctly if I remove .com it works correct HOT 1
- Please consider support the .html file extension HOT 1
- python_requires missing from published releases
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pystache.