Bonsoir,
Ce comportement est bien évidement bizarre.
Ce que je te propose c'est de remplacer ta view par :
Voici le code dans views.py:
def index(request):
messages = Message.objects.order_by('-publication_date')
if not messages:
raise Http404
last = messages[0]
return render_to_response('posts/index.html', {
'last_message' : last,
'posts_list' : messages,
})
Voici le code dans index.html
<article>
<h1><a href="/posts/{{ last_message.id }}">{{ last_message.title
}}</a></h1>
<p class="meta_infos">Published on {{ last_message.publication_date
}}</p>
<p>{{ last_message.text }}</p>
</article>
Comme il y a un raise Http404 (dans get_list_or_404 ou dans ma view avec
le raise, le else ne s'affichera jamais.
Dans tous les cas si le problème continue, il ne vient certainement pas
de la vue, mais plutôt de ta base de données.
Avec le order_by le problème ne devrait plus survenir, vérifie bien que
tu as fais un touch (commande unix) de django.wsgi une fois le code
modifié pour qu'il soit pris en compte.
Bonne soirée,
Rémy
Le 15/08/2012 20:28, philippe a écrit :
Bonjour,
Je suis en train d'apprendre django, et je viens de mettre mon projet en
production avec Apache (mod_wsgi) sur Linux debian Squeeze.
Basiquement, il s'agit d'un blog avec des messages, la page principale
devant afficher le dernier post publié.
Voici le code dans views.py:
def index(request):
messages =
get_list_or_404(Message.objects.order_by('publication_date'))
last = messages[-1]
return render_to_response('posts/index.html', {
'last_message' : last,
'posts_list' : messages,
})
Voici le code dans index.html
<article>
<h1><a href="/posts/{{ last_message.id }}">{{ last_message.title
}}</a></h1>
<p class="meta_infos">Published on {{ last_message.publication_date
}}</p>
<p>{{ last_message.text }}</p>
</article>
Normalement, le dernier post s'affiche.
Cependant, lorsque j'appuie sur F5, encore, et encore (pas comme un
bourrin, mais toutes les secondes, par exemple) des fois, le premier
message s'affiche au lieu du dernier.
J'ai essayé ce code pour view.py:
def index(request):
messages =
get_list_or_404(Message.objects.order_by('publication_date'))
try:
last = Message.objects.order_by('publication_date')[0]
except IndexError:
raise Http404
return render_to_response('posts/index.html', {
'last_message' : last,
'posts_list' : messages,
})
avec le même résultat aléatoire: Des fois le dernier, des fois le
premier post s'affiche.
Je précise que lorsque je teste avec le serveur de développement de
django, je n'ai pas ce comportement. Donc le problème viendrait d'apache?
Rien de bizarre dans les logs pourtant.
Merci pour m'aider à comprendre ce qui cloche ici :/
_______________________________________________
django mailing list
[email protected]
http://lists.afpy.org/mailman/listinfo/django
_______________________________________________
django mailing list
[email protected]
http://lists.afpy.org/mailman/listinfo/django