Hey everyone,
When I go to `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.