En litt mer dynamisk flatpage?

13 views
Skip to first unread message

Jesper Thøgersen

unread,
Mar 17, 2009, 9:10:43 PM3/17/09
to Django Norge
Morn folkens :-)

Sitter og jobber med porteføljen min nå, men har støtt på en lita
nøtt.

Casen er at jeg har opprettet forsiden som en flatside "/", og valgt
et eget template for den "flatpages/frontpage.html". I frontpage.html
printes teksten, og includer "portfolio/showcase.html". Det ser ut til
at den inkluderer riktig, men det dynamiske blir ikke printet...



Tidligere satt jeg opp frontpagen i portfolio/views.py slik:

def showcase(request):
projects = Project.objects.all()[:5]
return render_response(request, 'frontpage.html', {'projects':
projects})

... og url.py slik:

url(r'^$', 'portfolio.views.frontpage', name='frontpage'),



Men har nå endret denne til:

def showcase(request):
projects = Project.objects.all()[:5]
return render_response(request, 'portfolio/showcase.html',
{'projects': projects})

... og utelatt frontpage i url.py, da det er en flatpage.



showcase.html ser slik ut:

{% for project in projects %}
{% if project.is_showcase %}
... innhold her ...
{% endif %}
{% endfor %}


Jeg regner med at det er noe jeg har oversett eller ikke forstått her.
Noen som hadde tatt seg bryet til å hjelpe en stakkars nybegynner?
Setter stor pris på all hjelp! :-)
Message has been deleted

Jesper Thøgersen

unread,
Mar 18, 2009, 7:27:20 PM3/18/09
to Django Norge
Hehe. Nå har jeg sittet i en times tid og knota med det jeg fant på
den linken, mens løsningen var rimelig mye enklere:

from django import template
from django.template import Library, Node
from portfolio.models import Project

register = template.Library()

def showcase():
projects = Project.objects.all()
return {'projects': projects}

register.inclusion_tag('portfolio/showcase.html')(showcase)


:-)


On Mar 18, 8:50 pm, Jon Lønne <j...@funkpilot.no> wrote:
> Include-tag'en inkluderer bare template-koden, og har ingen
> fornemmelse om hvilket view (og tilhørende context-data) som hører til
> det angitte templatet.
>
> Tror den enkleste og mest fleksible måten å løse problemet ditt på er
> å lage en templatetag, og bruke denne i frontpage.html-template ditt.
> James Bennet har en god guide [1], og tror dette er funksjonaliteten
> du er ute etter.
>
> Lykke til!
>
> Mvh Jon
>
> [1]http://www.b-list.org/weblog/2006/jun/07/django-tips-write-better-tem...
Reply all
Reply to author
Forward
0 new messages