2011-03-14 104 views
0

在我的admin.py中是否有一种方法可以按最新日期排序该数据集?正如你在下面看到的,它按字母顺序排序。Django管理排序

---型号:

class Tag(models.Model): 
     name = models.CharField(max_length=48, unique=True) 
     data = models.ManyToManyField(Product) 
     def __unicode__(self): 
       return self.name 

---联系:

class TagAdmin(admin.ModelAdmin): 
     pass 
admin.site.register(Tag, TagAdmin) 

回答

2

您可以通过formfield_for_manytomany

class TagAdmin(admin.ModelAdmin): 
    def formfield_for_manytomany(self, db_field, request, **kwargs): 
     if db_field.name == "data": 
      kwargs["queryset"] = Product.objects.order_by('date_created') 
     return super(TagAdmin, self).formfield_for_manytomany(db_field, request, **kwargs) 

覆盖用于为M2M领域的查询集如果你想要一个全球性的,不需要注册在特定的顺序,我们可以覆盖在你的model manager.

class MyManager(models.Manager): 
    def get_query_set(self): 
     return super(MyManager, self).get_query_set().order_by('date_created') 
     # this would affect any ordering using this model including admin. 
+0

Django文档get_query_set没有道理给我。 – pythondjango 2011-03-14 02:14:02

+0

你需要澄清某处吗?我可以尝试帮助 – 2011-03-14 02:15:37

+0

从上面粘贴的代码中,我会改变什么? – pythondjango 2011-03-14 02:19:41