Django只按日期

时间:2016-11-06 03:48:50

标签: python django listview

我正在处理从dev继承的一些Django代码,需要进行一个非常简单的更改。在代码中,有一个通过Django ListView显示的作业列表。我的问题很简单。当我进入页面时,我看到按日期排序的作业最先排序。我想按相反的顺序对作业进行排序。我现在不需要任何过滤,在URL中传递参数等。以下是文件的相关部分:

#models.py
from django.db import models
class Job(models.Model):
    created = models.DateTimeField(auto_now_add=True)
    position =  models.ManyToManyField(Position)
    title = models.CharField(max_length=100)

#views.py
from .models import Job
class JobListView(ListView):
    template_name="jobs/list.html"
    model = Job
    paginate_by = 10

#list.html
{% for job in object_list %}
    <li class="display-list-item">
        <h4><strong><a href="{% url 'job_detail' pk=job.pk %}">{{job.title}}</a></strong></h4>
        <ul class="list-inline job-info-list">                                                    
            <span>{{job.created | timesince}} ago</span>
        </ul>               
    </li>
{% endfor %}


#urls.py
urlpatterns = [
url('^$', views.JobListView.as_view(), name='job_list')
]

如上所述,这会导致作业按“创建”排序显示。领域。之前创建的那些首先显示。让后来创建的那些显示最快的最快方法是什么?

1 个答案:

答案 0 :(得分:5)

第一种方式

models.py

profileApp.controller('mainController', ['$scope', 'globalParams', function($scope, globalParams){
    //some code
};

第二种方式

views.py

from django.db import models
class Job(models.Model):
    created = models.DateTimeField(auto_now_add=True)
    position =  models.ManyToManyField(Position)
    title = models.CharField(max_length=100)

    class Meta:
       ordering = ['-created']