python - Partially overriding view config inherit from parent class in Pyramid -
i using class based views cut down amount of repeating oneself in similar view methods. pyramid @view_config
allows little boilerplate. example when have same view context changes:
class baseedit(formview): @view_config(context=resource, name="edit", renderer="crud/edit.html", permission='edit') def edit(self): pass class useredit(baseedit): @view_config(context=userresource, name="edit", renderer="crud/edit.html", permission='edit') def edit(self): pass
however, possible reduce boilerplate further? e.g. don't want re-declare template
file, because doesn't change. want change @view_config
parameters. there way this:
class baseedit(formview): @view_config(context=resource, name="edit", renderer="crud/edit.html", permission='edit') def edit(self): pass class useredit(baseedit): @view_override(context=userresource) def edit(self): pass
any other suggested patterns make can vary parameters, namely context
, generic views?
the following does not work:
@view_defaults(context=userresource, template="foobar.html") class useredit(baseedit): pass
in case still uses orignal @view_config
, ignores overridden template.
or:
@view_defaults(context=userresource) class useredit(baseedit): def edit(self): # never called return "xx"
as current state of art not cut it, went ahead , created little helper function , package @view_overrides
:
Comments
Post a Comment