У меня проблема: предположим, у вас есть приложение для блога, и вы хотите отобразить все созданные сообщения. Но у вас есть сообщения, которые могут быть «прикрепленными» или «показанными», которые должны отображаться первыми и должны находиться в другом html-блоке. Может быть, это не лучший пример, но в конце концов это то, что мне нужно.
Итак, модель проста:
class Post(models.Model):
title = models.CharField()
content = models.TextField()
featured = models.BooleanField(default=False)
created = models.DateTimeField(auto_now=False, auto_now_add=True)
class Meta:
ordering = ['-featured','-created']
В представлении я просто запрашиваю все сообщения и отображаю их в шаблоне:
def my_view(request):
return render_to_response('template.html',{'posts':Post.objects.all()})
Теперь проблема в моем шаблоне, что я хочу получить в результате это:
<html>
<div class='featured-posts'>
<ul>
<li> A Featured post</li>
</ul>
</div>
<div class='not-featured-posts'>
<ul>
<li> A NON Featured post</li>
</ul>
</div>
</html>
Что я могу сделать? Я думал, что, может быть, я смогу схватить тех, кто разделен, таким образом:
return render_to_response('template.html',{
'featured':Post.objects.filter(featured=True),
'non_featured':Post.objects.filter(featured=False)
})
Но мне действительно не нравится такой подход, есть ли какое-нибудь "основанное на шаблонах" решение?
Thx!