小智 12
试试这个:
在模型中设置排序Meta:
class Meta:
ordering = ["some_field", "other_field"]
Run Code Online (Sandbox Code Playgroud)
并在admin.py以下位置添加此类:
from django.contrib.admin.views.main import ChangeList
class SpecialOrderingChangeList(ChangeList):
"""
Django 1.3 ordering problem workaround
from 1.4 it's enough to use `ordering` variable
"""
def get_query_set(self):
queryset = super(SpecialOrderingChangeList, self).get_query_set()
return queryset.order_by(*self.model._meta.ordering)
Run Code Online (Sandbox Code Playgroud)
在你的.中添加此方法 admin.ModelAdmin
def get_changelist(self, request, **kwargs):
return SpecialOrderingChangeList
Run Code Online (Sandbox Code Playgroud)
来源:https://groups.google.com/forum/?fromgroups#!topic/django-users/PvjClVVgD -s
直到 django 1.4(当前处于 alpha 版本)为止,django 管理员仅按Meta ordering. 您可以通过覆盖查询集来解决此问题:
class MyAdmin(admin.ModelAdmin):
def queryset(self, request):
qs = super(MyAdmin, self).queryset(request)
qs = qs.order_by('last_name', 'first_name')
return qs
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6768 次 |
| 最近记录: |