Hi Rainell,

Thanks for replying. Still learning Mezzanine. Where do I access the 
database table?

On Sunday, November 5, 2017 at 6:28:11 AM UTC-5, Rainell Dilou Gómez wrote:
>
> Hello Tom,
> I have not understood your question well, but I will try to help you 
> understand how works your example.
>
> 1. Your model inherits the Displayable class, therefore there will be a 
> slug field in the respective database table. Take a look at the table of 
> your model in the database and you can see the slug field.
>
> 2. In the model you have declared the absolute url, where you specify the 
> name of the urlpattern (project_detail) that must be used and the parameter 
> that must be passed to it (slug).
>
> 3. In the urlpattern you have specified the view that must be called to 
> process that request.
>
> 4. Then, in the view method (def project_detail(...)) called through the 
> urlpatthern, you have declared that this method expects the slug parameter 
> and you have declared the template that will be used 
> (template="projects/project_detail.html").
>
> 5. Queryset is created through get_object_or_404, which in this case would 
> be something like this:
>
> "SELECT * FROM yourapp_projectlinkpage WHERE slug='some-slug' AND status=2"
>
> 6. The view gives the specified template the context with the instance 
> obtained through the queryset.
>
> 7. Template render the page with the instance that has been passed in the 
> context.
>
> An observation about the view method. In the templates variable 
> declaration you should substituting "projects/project_detail /% s.html" 
> with "projects/project_detail_% s.html"
>
> 8. The content you have written when you have created a project through 
> the admin interface, will be rendered by the template through the tag {{ 
> project.content }}
>
>
> 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