2011-03-14 138 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