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.

Reply via email to