Как получить и опубликовать последние данные и данные списка в django

Я сейчас работаю над django, нужна помощь, как достичь моей цели

Мне нужно опубликовать последние данные и список данных в веб-приложении .

Ниже приведен набор шагов, которые я выполнил

Создали Model.py

импорт datetime из statistics import mode from django.db import models

Создавайте свои модели здесь.

class documents(models.Model):
    author= models.CharField(max_length=30)
    title=models.CharField(max_length=50)
    description=models.TextField()
    creation_date=models.DateTimeField()
    update_date=models.DateTimeField()

View.py

from django.shortcuts import render

from django.views.generic.list import ListView
from .models import documents

    # Create your views here.
    
    
    
    
    class documentlist(ListView):
        template_name='app/document_list.html'
        model=documents
        context_object_name='document'

HTML фрагмент

{% extends 'base.html' %}


{% block title %} MY HOMEPAGE {% endblock  %}

{% block css %}

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" 
integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">

{% endblock  %}


{% block content %}


<nav class=" navbar navbar-dark bg-primary">
    <a class="navbar-brand mb-0 h1" href="#">MEDICARE</a>
  </nav>

{% for d in document  %}

 <td>{{d.title}}</td>

{% endfor %}

{% endblock %}

Как мы можем отобразить и последние данные и список данных из класса модели в django? Мне понятно про отображение данных списка с помощью listview. может кто-нибудь помочь разобраться как отобразить последние данные из списка в listview.html

Спасибо, Сид

Просто добавьте упорядочивание по id в порядке убывания:

 class documentlist(ListView):
        template_name='app/document_list.html'
        model=documents
        context_object_name='document'

        ordering = ['-id']

Ну, вы можете получить данные о последних публикациях в виде списка следующим образом:

class documentlist(ListView):
        template_name='app/document_list.html'
        model=documents
        context_object_name='document'
        
        def get_queryset(self):
            return documents.objects.filter(author=request.user).order_by('creation_date')

В вашем html шаблоне вы можете сделать что-то вроде этого, чтобы отобразить последнее сообщение

% extends 'base.html' %}


{% block title %} MY HOMEPAGE {% endblock  %}

{% block css %}

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" 
integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">

{% endblock  %}


{% block content %}


<nav class=" navbar navbar-dark bg-primary">
    <a class="navbar-brand mb-0 h1" href="#">MEDICARE</a>
  </nav>

{% for doc in document  %}

 <td>{{doc.title}}</td>

{% endfor %}

{% endblock %}

Я разобрался в проблеме и это помогло мне решить проблему.

 def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        context['latest_post'] = documents.objects.latest('update_date')
        return context

Спасибо, SIdh

Вернуться на верх