2013-05-26 2 views
1

У меня 3 приложения, и я хочу отображать последние сообщения на них на главной странице (index.html).Показать последнее сообщение от моделей на домашней странице в django

Analizi models.py:

class Analiza(models.Model): 
    published = models.DateTimeField(default = datetime.now) 
    title = models.CharField(max_length = 500) 
    avtor = models.CharField(max_length = 200) 

    analiza_text = models.TextField(blank = True, null = True) 

    approved = models.BooleanField(default=False) 
    class Meta: 
     permissions = (
      ("can_approve_post", "Can approve post"), 
     ) 

    def _unicode_(self): 
     return self.title 
    def get_absolute_url(self): 
     return "/%s/%s/%s/" % (self.published.year, self.published.month, self.slug) 

Другое два (Recenzii и Lekcii) в основном то же самое.

Analizi views.py:

def analizi(request): 
    post = Analiza.objects.order_by('-published')[:5] 
    return render_to_response('index.html', {'posts': post},) 

Но с этой точки зрения я могу видеть результаты на http://websiteurl.com/analizi (и я знаю, что это неправильно).

Как я могу отобразить последние сообщения из всех 3 приложений на главной странице?

ответ

2

Вы должны загрузить сообщения в veiw.py вашей домашней страницы:

def index(request): 
    posts = Analiza.objects.order_by('-published')[:5] 
    lektcii = Lektcii.objects.order_by('-published')[:5] 
    recenzii = Recenzii.objects.order_by('-published')[:5] 

    data = {'posts': posts, 'lektzii': lektzii, 'recenzii': recenzii} 

    render_to_response('index.html', data, context_instance=RequestContext()) 

Тогда при использовании их в вас index.html.

0

Дополнительный пример, который показывает, как загрузить сообщения в view.py вашей страницы

views.py

def example(request): 
     post = Post.objects.first() 
     template = 'data/example.html' 
     context = {'post': post} 
     return render(request, template, context) 

example.html

{% if post.image %} 
    <img class="img-responsive" src="{{ post.image.url }}"> 
{% endif %} 
<h1><a href="{{post.get_absolute_url}}"> {{post.title}}</a></h1> 
<p>by {{ post.author }} <span class="glyphicon glyphicon-time"></span> Posted on {{ post.published }}</p> 
<p class="lead">{{post.content|truncatewords:100|linebreaks}}</p> 
Смежные вопросы