Building a Retail Application¶
It’s not the intent that normal unprivileged users of an application you build using Substance D ever see the SDI management interface. That interface is reserved for privileged users, like you and your staff.
To build a “retail” application, you just use normal Pyramid view configuration to associate objects with view logic based on the content types provided to you by Substance D and the content types you’ve defined.
For example, here’s a view that will respond on the root Substance D object and return its SDI title:
1 2 3 4 5 6 7 | from pyramid.view import view_config
@view_config(content_type='Root')
def hello(request):
html = u'<html><head></head><body>Hello from %s!</body></html>'
request.response.text = html % request.context.sdi_title
return request.response
|
Note that we did not use the substanced.sdi.mgmt_view
decorator.
Instead we used the pyramid.view.view_config
decorator, which will
expose the view to normal site visitors, not just those visiting the
resource via the SDI.
To see that code working, create a retail
package within the myproj
package (that is the inner myproj
folder that contains the
__init__.py
, resources.py
and views.py
files). The package will
have two files: an empty __init__.py
and a views.py
with the code
snippet above. If you now visit http://localhost:6543/
you will see the
“Hello from…” message.
To display actual content stored in the database, Substance D exposes a resource tree that you can hang views from to build your application. You’ll want to read up on traversal to understand how to associate view configuration with resource objects.