Ah, now I see I've erred. I understood better after re-doing the Django 
tutorial. 

On Tuesday, November 7, 2017 at 5:48:20 PM UTC-5, Rainell Dilou Gómez wrote:
>
> You have got a 404 because you are using get_object_or_404, the behavior 
> of the method is implicit in its name: get object or 404. So if the 
> generated queryset does not find in the database table a record that 
> matches the arguments that you are passing (slug and status), that is, if 
> not get an object, the 404 will be generated.
> Regarding the directories structure and the templates declarations, I 
> suggest you study the Django documentation. See also the tutorial to 
> create your first application 
> <https://docs.djangoproject.com/en/1.11/intro/tutorial01/>.
>
> 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