Well, you can take advantage of the work you have done so far, that is, you have created your own content type, then you should make the necessary adjustments so that Mezzanine dynamically loads the indicated template, for example by the slug field. Obviously, each slug should correspond to a real template in its files (html, css and js files). Before starting with this work, I would recommend you (strongly recommended) to read the *Django documentation about the work with templates <https://docs.djangoproject.com/en/1.11/ref/templates/>* and also the *mezzanine documentation* <http://mezzanine.jupo.org/docs/content-architecture.html#page-templates>.
Il giorno domenica 5 novembre 2017 00:35:50 UTC+1, Tom Tanner ha scritto: > > Hey everyone, > > When I go to `http://127.0.0.1:8000/projects/some-slug` > <http://127.0.0.1:8000/projects/some-slug>, I want Mezzanine to fetch the > `project_detail.html` template, which would include `some-slug.html`. How > do I do this? > > Here's `urls.py`. > url("^projects/(?P<slug>.*)%s$" % _slash, project_detail, name= > "project_detail"), > > > > `models.py`. > class ProjectLinkPage(Displayable) > ''' > A page representing the format of the page that > has links to standalone, projectlink projectlinks > ''' > > > # Fields and `class Meta`, etc... > > > @models.permalink > def get_absolute_url(self): > return ("project_detail", (), {"slug": self.slug}) > > > `views.py` > def project_detail(request, slug, template="projects/project_detail.html", > extra_context=None): > ''' > Custom templates are checked for by using the name > `projects/project_detail/XXX.html`` where `XXX` is the project slug. > ''' > > > project = get_object_or_404(Project, slug=slug, status=2) > context = { > "project": project, > "editable_obj": project > } > context.update(extra_context or {}) > templates = [u"projects/project_detail/%s.html" % str(slug), template] > return TemplateResponse(request, templates, context) > > `project_detail.html` > {% extends "base.html" %} > {% load mezzanine_tags keyword_tags %} > > > {% block meta_title %} > {{ project.meta_title }} > {% endblock %} > > > {% block meta_keywords %} > {% metablock %} > {% keywords_for project as tags %} > {% for tag in tags %}{% if not forloop.first %}, {% endif %}{{ tag }}{% > endfor %} > {% endmetablock %} > {% endblock %} > > > {% block meta_description %} > {% metablock %}{{ project.description }}{% endmetablock %} > {% endblock %} > > > {% block title %} > {{ project.title }} > {% endblock %} > > > {% block main %} > {{ project.content }} > {% endblock %} > > But I'm not sure where to go from here. How do I transfer the slug to > `project_detail.html` so it knows where to look? In this case, I'd have a > folder named `slugs` in the same directory as `project_detail.html`. And > `slugs` would have templates named after slugs. > -- You received this message because you are subscribed to the Google Groups "Mezzanine Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
