diff options
| author | Chris McDonough <chrism@agendaless.com> | 2008-07-14 07:31:31 +0000 |
|---|---|---|
| committer | Chris McDonough <chrism@agendaless.com> | 2008-07-14 07:31:31 +0000 |
| commit | 85427fa0479aefd59bd55dca397b9a36277edade (patch) | |
| tree | cafad1ccb7d3f4c9a0b953adba78cd8caae70e93 /repoze/bfg/view.py | |
| parent | 9fcb68e1563e22eed1fd7cbbd10993cff30242f8 (diff) | |
| download | pyramid-85427fa0479aefd59bd55dca397b9a36277edade.tar.gz pyramid-85427fa0479aefd59bd55dca397b9a36277edade.tar.bz2 pyramid-85427fa0479aefd59bd55dca397b9a36277edade.zip | |
Less magical templated view model: make custom template views responsible for
knowing their template's name.
Diffstat (limited to 'repoze/bfg/view.py')
| -rw-r--r-- | repoze/bfg/view.py | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/repoze/bfg/view.py b/repoze/bfg/view.py new file mode 100644 index 000000000..07c3d183d --- /dev/null +++ b/repoze/bfg/view.py @@ -0,0 +1,27 @@ +from repoze.bfg.template import render_template + +class View(object): + """ Convenience base class for user-defined views """ + def __init__(self, context, request): + self.context = context + self.request = request + + def __call__(self, **kw): + raise NotImplementedError + +class TemplateView(View): + template = None + def __call__(self, **kw): + if self.template is None: + raise ValueError('a "template" attribute must be attached to ' + 'a TemplateView') + return render_template(self, self.template, **kw) + + def __repr__(self): + klass = self.__class__ + return '<%s.%s object at %s for %s>' % (klass.__module__, + klass.__mame__, + id(self), + self.template) + + |
