Thanks for your suggestions. I have managed to get rid of my
get_entries_list() and pass queryset directly to the template. I made
the mistake of using {{ entry.get_absolute_path() }} instead of {{
entry.get_absolute_path }} in the templates. I've also rewritten a lot
of for loops into list comprehensions (I guess I still have some
habits from PHP).

Cheers,
Matic Žgur

On Jan 10, 2008 6:04 PM, David Grant <[EMAIL PROTECTED]> wrote:
> I think you should be able to access the query sets directly in your
> template. Not sure why that didn't work for you.
>
> Here they pass a queryset to render_to_response:
> http://www.djangoproject.com/documentation/tutorial03/#a-shortcut-render-to-response
>
> Put a loop in your template and then access attributes of the loop variable
> and you should be good. Here's another example:
> http://www.djangoproject.com/documentation/tutorial03/#write-views-that-actually-do-something
> They pass latest_poll_list to the template and then look at the template
> where they have:
>
> {% if latest_poll_list %}
>  <ul>
>  {% for poll in latest_poll_list %}
>  <li>{{ poll.question }}</li>
>  {% endfor %}
>  </ul>
> {% else %}
>
>  <p>No polls are available.</p>
> {% endif %}
>
> You should be able to get rid of your get_tags and get_all_entries
> functions, or at the very least replace them with something that returns a
> queryset rather than constructing a list of dictionaries.
>
> Dave
>
>
>
> On Jan 10, 2008 4:12 AM, Matic Žgur <[EMAIL PROTECTED]> wrote:
> >
> > Hi everybody,
> >
> > being new in Django, I'd like to ask you for some tips about what
> > should be in views.py and what shouldn't be.
> >
> > I'm writing a blog app with custom views.py. I know that it would be a
> > lot easier (and wiser) to use generic views for what I'm trying to
> > accomplish, but I'd like to learn new things along the way, so I
> > decided to write my own views.py. Anyway, that's what bugs me:
> >
> > def get_all_tags():
> >
> >    tags = []
> >    tags_db = Tag.objects.all()
> >
> >    for tag in tags_db:
> >        tags.append({
> >            'tag': tag.tag,
> >            'url': tag.get_absolute_url ()
> >            })
> >
> >    return tags
> >
> > def get_entries_list(entries_list):
> >
> >    entries = []
> >
> >    for entry in entries_list:
> >        entries.append({
> >            'body': mark_safe(entry.body ),
> >            'pub_date': entry.pub_date,
> >            'title': entry.title,
> >            'url': entry.get_absolute_url(),
> >            'tags': entry.get_tags(),
> >            })
> >
> >    return entries
> >
> > def show_entries_by_day(request, year, month, day):
> >    now = datetime.datetime.now()
> >
> >    # Check if day is in the future
> >    if year + month + day > ''.join([str( now.year), str(now.month),
> > str(now.day)]):
> >        raise Http404
> >
> >    entries = Entry.objects.filter(pub_date__lte=now,
> >                                      pub_date__year=year,
> >                                      pub_date__month=month,
> >                                      pub_date__day=day,
> >                                      status=1)
> >
> >    return render_to_response('blog_entry.html', {'entries':
> > get_entries_list(entries), 'tags': get_all_tags()})
> >
> > I have a function similar to show_entries_by_year() for month, day,
> > tag and slug. Now, for get_all_tags(), I'm planning to write a
> > template tag that would replace this function, but I still don't know
> > what to do with get_entries_list(). I only made this function in order
> > to not repeat myself. Is there a way to get rid of get_entries_list()
> > and somehow make my views.py cleaner? I tried to pass entries directly
> > to the template but it didn't quite work (maybe I'm missing
> > something).
> >
> > I searched the web for some examples, but it's hard to find apps that
> > don't use generic views (at least I didn't find them), so I decided to
> > ask here.
> >
> > Thanks
> > Matic Žgur
> >
> >
> >
> >
>
>
>
> --
> David Grant
> http://www.davidgrant.ca
>
>
>  >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-users@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to