2016-11-06 8 views
4

私は開発者から継承し、非常に単純な変更を行う必要があるいくつかのDjangoコードを扱っています。コードには、Django ListViewで表示されるジョブのリストがあります。私の問題は本当にシンプルです。私がページに行くと、最初に最初に日付順にソートされたジョブが表示されます。逆の順序でジョブを並べ替えたい私はフィルタリングやURLのパラメータの渡しなどは今のところ必要ありません。Djangoちょうど並べ替え日付でリストビュー

#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') 
] 

前述のように、ジョブは「作成済み」フィールドでソートされて表示されます。前に作成したものが最初に表示されます。後で作成されたものを最初に表示させる最も簡単な方法は何ですか?

答えて

4

最初方法

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) 

    class Meta: 
     ordering = ['-created'] 

第方法

views.py

from .models import Job 
class JobListView(ListView): 
    template_name="jobs/list.html" 
    queryset = Job.objects.order_by('-created') 
    paginate_by = 10 
関連する問題