I read those, but unfortunately I'm not sure I understand.
I changed my directory a bit, so it's...
theme/
- templates/
-- pages/
--- project_pages/
---- project_base.html
---- projects/
----- some-content.html
My `views.py` changed slightly..
def project_detail(request, slug, template="project_pages/project_base.html"
, extra_context=None):
'''
Custom templates are checked for by using the name
`project_pages/projects/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"project_pages/projects/%s.html" % str(slug), template]
return TemplateResponse(request, templates, context)
I used my site's Admin page to add a `ProjectLinkPage` object with slug
`some-content.html`, which looks like this:
{% extends "project_base.html" %}
{% load mezzanine_tags keyword_tags %}
{% block main %}
<p>Here is some content</p>
{% endblock %}
But I still get a 404 error when I go to
`http://127.0.0.1:8000/projects/some-content/`. I know you mentioned using
an underscore, but I'd like to access each project page like
`/projects/name-of-project/`.
Is this possible?
On Monday, November 6, 2017 at 3:08:12 PM UTC-5, Rainell Dilou Gómez wrote:
>
> 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.