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
This commit is contained in:
parent
8ee33da585
commit
181ee4ae31
|
@ -135,8 +135,11 @@ def change_list(request, app_label, module_name):
|
||||||
f = lookup_opts.get_field(order_field)
|
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
|
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)
|
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
|
if lookup_opts.admin.list_select_related:
|
||||||
# relationship.
|
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:
|
for field_name in lookup_opts.admin.list_display:
|
||||||
try:
|
try:
|
||||||
f = lookup_opts.get_field(field_name)
|
f = lookup_opts.get_field(field_name)
|
||||||
|
|
|
@ -730,7 +730,7 @@ class OneToOne(ManyToOne):
|
||||||
|
|
||||||
class Admin:
|
class Admin:
|
||||||
def __init__(self, fields=None, js=None, list_display=None, list_filter=None, date_hierarchy=None,
|
def __init__(self, fields=None, js=None, list_display=None, list_filter=None, date_hierarchy=None,
|
||||||
save_as=False, ordering=None, search_fields=None, save_on_top=False):
|
save_as=False, ordering=None, search_fields=None, save_on_top=False, list_select_related=False):
|
||||||
self.fields = fields
|
self.fields = fields
|
||||||
self.js = js or []
|
self.js = js or []
|
||||||
self.list_display = list_display or ['__repr__']
|
self.list_display = list_display or ['__repr__']
|
||||||
|
@ -739,6 +739,7 @@ class Admin:
|
||||||
self.save_as, self.ordering = save_as, ordering
|
self.save_as, self.ordering = save_as, ordering
|
||||||
self.search_fields = search_fields or []
|
self.search_fields = search_fields or []
|
||||||
self.save_on_top = save_on_top
|
self.save_on_top = save_on_top
|
||||||
|
self.list_select_related = list_select_related
|
||||||
|
|
||||||
def get_field_objs(self, opts):
|
def get_field_objs(self, opts):
|
||||||
"""
|
"""
|
||||||
|
|
Loading…
Reference in New Issue