首页 > 解决方案 > 如何在 Django 的 Web 应用程序中按日期对帖子进行排序?

问题描述

我有一个 Web 应用程序,我试图按最近的日期订购它,即上面最新的日期和下面最旧的日期,但由于某种原因,它以相反的方式订购我,并且在其他计算机上订购良好,奇怪的是,在我的本地服务器上它很好,它可以按我的意愿命令我,但在网站上显示它时,它显示的就像我之前提到的那样。

模型.py

from django.db import models

class Publicacion(models.Model):
    foto = models.ImageField()
    titulo = models.CharField(max_length=200)
    contenido = models.TextField()
    fecha = models.DateField(auto_now_add=True)
    contenido_largo = models.TextField(max_length=10000, default='', null=True, blank=True)

    def __str__(self):
        return self.titulo

视图.py

class ListarPublicaciones(ListView):
    model = Publicacion
    template_name = 'Publicacion/listarPublicaciones.html'

    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        if self.request.user.is_authenticated:
            pedidos = Pedido.objects.filter(cliente = self.request.user).aggregate(Sum('cantidad'))
            context['Pedido'] = pedidos
            context['object_list'] = Publicacion.objects.all().order_by('-fecha')
        return context

我试过 order_by('-fecha__year','-fecha__month','-fecha__day')

html

<section class="py-5"><!-- Page Content -->
<div class="container"><!-- Container página principal -->
  <div class="row">
    <div class="col-md-12"> 
      <div class="panel">
        {% for p in object_list %}
          <div class="row">    
            <br>
              <div class="col-md-3 col-sm-3 text-center">
                  <a class="story-img" href="{% url 'publicacion:detallePublicacion' p.pk %}">
                <img src="{{p.foto.url}}" class="rounded" style="width: 250px;"></a>
              </div>
            <div class="col-md-8 col-sm-9">
              <a class="subt" href="{% url 'publicacion:detallePublicacion' p.pk %}"><h2>{{p.titulo}}</h2></a>
              <div class="row">
                <div class="col-md-12">
                  <p class="texto">{{p.contenido|urlize}}</p>
                  <div class="redes list_op" style="text-align: right;">
                    <ul class="list-inline list-unstyled" >
                      {% if p.contenido_largo %}
                      <li>
                        <a class="plus" href="{% url 'publicacion:detallePublicacion' p.pk %}">Ver más</a>
                      </li>
                      <li>|</li>
                      {% endif %} 

                      <li>{{p.fecha.day}}-{{p.fecha.month}}-{{p.fecha.year}}</li>
                      <li>|</li>
                      <li>
                    <i class="fa fa-share" aria-hidden="true" style="font-size: 12px; color: #2c5d63;"></i> Compartir:
                    <a target="_blank" href="http://www.facebook.com/sharer.php?u=http://feriacultiva.com/publicaciones/detallepublicacion/{{p.pk}}"><img src="{% static 'icon/facebook.png' %}" border=0 height="25" class="facebook" /></a>
                    <a href="whatsapp://send?text=http:http://feriacultiva.com/publicaciones/detallepublicacion/{{p.pk}}" data-action="share/whatsapp/share"><img class="whatsapp" border="0" src="{% static 'icon/whatsapp.png' %}"></a>
                    <a href="https://twitter.com/intent/tweet?text=¡Mira%20esta%20publicación%20de%20Feria%20Cultiva!&url=http://feriacultiva.com/publicaciones/detallepublicacion/{{p.pk}}" target="_blank"><img class="twitter" border="0" src="{% static 'icon/twitter.png' %}" height="25"></a>
                  </li>
                  
                    </ul>
                  </div>        
                </div>
                <div class="col-xs-3">
                </div>
              </div>
              <br><br>
            </div>
          </div>
        <hr>
    {% endfor %}
  </div>
    </div>
  </div>
</div>
</section>

标签: djangosql-order-by

解决方案


它可以通过使用'''DateTimeField'''来解决然后'''order_by'''将起作用替换并重新迁移它对我来说很好


推荐阅读