Edit me on GitHub

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.

Previous topic

Virtual Rooting

Next topic

Substance D Command-Line Utilities