diff options
| author | Adrian Holovaty <adrian@holovaty.com> | 2005-11-05 18:14:17 +0000 |
|---|---|---|
| committer | Adrian Holovaty <adrian@holovaty.com> | 2005-11-05 18:14:17 +0000 |
| commit | 181ee4ae3175f2c7dfd89dd3418dfe81cc135a51 (patch) | |
| tree | ca5a5a37d4d8fa7ba39a1c95697a1ac0abf9bf31 /django/contrib/admin | |
| parent | 8ee33da58558fd2da918f4e9e55556f07831cd93 (diff) | |
Added meta.Admin list_select_related option, which specifies to use select_related in the change-list query
git-svn-id: http://code.djangoproject.com/svn/django/trunk@1092 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'django/contrib/admin')
| -rw-r--r-- | django/contrib/admin/views/main.py | 25 |
1 files changed, 14 insertions, 11 deletions
diff --git a/django/contrib/admin/views/main.py b/django/contrib/admin/views/main.py index e3dd5afdcf..b188f58947 100644 --- a/django/contrib/admin/views/main.py +++ b/django/contrib/admin/views/main.py @@ -135,17 +135,20 @@ def change_list(request, app_label, module_name): f = lookup_opts.get_field(order_field) rel_ordering = f.rel.to.ordering and f.rel.to.ordering[0] or f.rel.to.pk.column lookup_order_field = '%s.%s' % (f.rel.to.db_table, rel_ordering) - # Use select_related if one of the list_display options is a field with a - # relationship. - for field_name in lookup_opts.admin.list_display: - try: - f = lookup_opts.get_field(field_name) - except meta.FieldDoesNotExist: - pass - else: - if isinstance(f.rel, meta.ManyToOne): - lookup_params['select_related'] = True - break + if lookup_opts.admin.list_select_related: + lookup_params['select_related'] = True + else: + # Use select_related if one of the list_display options is a field with + # a relationship. + for field_name in lookup_opts.admin.list_display: + try: + f = lookup_opts.get_field(field_name) + except meta.FieldDoesNotExist: + pass + else: + if isinstance(f.rel, meta.ManyToOne): + lookup_params['select_related'] = True + break lookup_params['order_by'] = ((order_type == 'desc' and '-' or '') + lookup_order_field,) if lookup_opts.admin.search_fields and query: or_queries = [] |
