Access to model fields is the same in Python and in templates:
{{ my_model.title }} {# This comes from Displayable #}
{{ my_model.some_other_field }}
Now, you might be asking how to get "my_model" into the template context
to begin with. The answer is to write a view that does it:
from django.shortcuts import render
def my_model_detail_view(request):
context = {
"my_model": MyModel.objects.get(...),
}
render(request, "my_template.html", context)
Regarding the blog posts, there's already a template tag that can fetch
you recent posts:
{% load blog_tags %}
{% blog_recent_posts limit=3 as recent_posts %}
{% for post in recent_posts %}
...
{% endfor %}
I suggest you take a look at the source for this tag to see how
Mezzanine handles it:
https://github.com/stephenmcd/mezzanine/blob/master/mezzanine/blog/templatetags/blog_tags.py#L57
On 2017-10-06 2:24 PM, Hamza Jutt wrote:
Hello *Eduardo*!
*Thanks* for the detailed answer.
Now here is the thing When I said that I was extending from
*Displayable *That was supposed to mean that I'm inheriting abstract
model in my Custom content type. I can create items in database using
*admin-site *and I've know a hefty amount about Django ORM. I know
what displayable provides in that case. But what I was hoping for a
similar method to access data in django template as in Docs You can
access data of custom fields in model extended from *Page.*
|
{{page.some_model.title }}
{{page.some_model.slug }}
{{page.some_model.custom_field }}
|
What I got from your answer is there is no way to access data in
django template of model which is inheriting Displayable as it is not
in context. Only way to get that data is to use custom urls, views and
templates. It's like just getting some basics but implement almost
everything to get data from db (on url parameters or something). Then
pass it as context to template response along with django template
just like Blog.
Actually Our old app uses mezzenine but inherits everything from
*Page*. And using that we can easily access data using page in context
in django template. But that does seems wrong to create everything as
page. But what I understood that If I were to fix it I will have to
write all those urls and views by myself.
If I understood something wrong please help. Also I do have another
question so if I have model inheriting *Displayable* and now I need
info from that model in pages other that specific pages provided by
custom urls and views. how would I do it. For *Example* I need 3
recent blog posts on home page. So how would I access them. Would I
have to write custom View for Home page and if so then I'm just
overriding Home page default view as it is *RichTextPage* at this point.
If anything seems confusing I would be happy to provide further
information.
Help is highly appreciated.
--
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]
<mailto:[email protected]>.
For more options, visit https://groups.google.com/d/optout.
--
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.