diff options
| author | Brian Rosner <brosner@gmail.com> | 2008-04-28 04:28:59 +0000 |
|---|---|---|
| committer | Brian Rosner <brosner@gmail.com> | 2008-04-28 04:28:59 +0000 |
| commit | 738e6d986ba41ec5ef9ba5a600a333916f2e763d (patch) | |
| tree | 7f6ab31d75a109d4267e22e30678f108bbbc1d71 /django | |
| parent | 678b9a6f5a0dfdf571e6dc66ade5521314047deb (diff) | |
newforms-admin: Merged from trunk up to [7491].
git-svn-id: http://code.djangoproject.com/svn/django/branches/newforms-admin@7492 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'django')
| -rw-r--r-- | django/contrib/admin/views/main.py | 26 | ||||
| -rw-r--r-- | django/db/models/query.py | 1 | ||||
| -rw-r--r-- | django/db/models/sql/constants.py | 2 | ||||
| -rw-r--r-- | django/db/models/sql/subqueries.py | 3 |
4 files changed, 6 insertions, 26 deletions
diff --git a/django/contrib/admin/views/main.py b/django/contrib/admin/views/main.py index 1df046e561..254f202dd2 100644 --- a/django/contrib/admin/views/main.py +++ b/django/contrib/admin/views/main.py @@ -282,31 +282,9 @@ class ChangeList(object): qs = qs.select_related() break - # Calculate lookup_order_field. - # If the order-by field is a field with a relationship, order by the - # value in the related table. - lookup_order_field = self.order_field - order_type = self.order_type == 'desc' and '-' or '' - try: - f = self.lookup_opts.get_field(self.order_field, many_to_many=False) - except models.FieldDoesNotExist: - pass - else: - if isinstance(f.rel, models.OneToOneRel): - # For OneToOneFields, don't try to order by the related object's ordering criteria. - pass - elif isinstance(f.rel, models.ManyToOneRel): - rel_ordering = f.rel.to._meta.ordering and f.rel.to._meta.ordering[0] or f.rel.to._meta.pk.column - if rel_ordering[0] == '-': - rel_ordering = rel_ordering[1:] - order_type = not order_type and '-' or '' - lookup_order_field = '%s.%s' % (f.rel.to._meta.db_table, rel_ordering) - # FIXME: Must use select_related() becuase the lookup field may - # be in a table not otherwise referenced yet. - qs = qs.select_related() - # Set ordering. - qs = qs.order_by(order_type + lookup_order_field) + if self.order_field: + qs = qs.order_by('%s%s' % ((self.order_type == 'desc' and '-' or ''), self.order_field)) # Apply keyword searches. def construct_search(field_name): diff --git a/django/db/models/query.py b/django/db/models/query.py index e1e2bb19f2..3696181a5c 100644 --- a/django/db/models/query.py +++ b/django/db/models/query.py @@ -284,6 +284,7 @@ class QuerySet(object): query = self.query.clone(sql.UpdateQuery) query.add_update_values(kwargs) query.execute_sql(None) + transaction.commit_unless_managed() self._result_cache = None update.alters_data = True diff --git a/django/db/models/sql/constants.py b/django/db/models/sql/constants.py index 3075817385..129a592b31 100644 --- a/django/db/models/sql/constants.py +++ b/django/db/models/sql/constants.py @@ -28,7 +28,7 @@ NULLABLE = 6 MULTI = 'multi' SINGLE = 'single' -ORDER_PATTERN = re.compile(r'\?|[-+]?\w+$') +ORDER_PATTERN = re.compile(r'\?|[-+]?[.\w]+$') ORDER_DIR = { 'ASC': ('ASC', 'DESC'), 'DESC': ('DESC', 'ASC')} diff --git a/django/db/models/sql/subqueries.py b/django/db/models/sql/subqueries.py index 382e6e94ff..1f9a13ecdc 100644 --- a/django/db/models/sql/subqueries.py +++ b/django/db/models/sql/subqueries.py @@ -95,7 +95,7 @@ class UpdateQuery(Query): def _setup_query(self): """ - Runs on initialisation and after cloning. Any attributes that would + Runs on initialization and after cloning. Any attributes that would normally be set in __init__ should go in here, instead, so that they are also set up after a clone() call. """ @@ -349,6 +349,7 @@ class DateQuery(Query): self.connection.ops.date_trunc_sql) self.select = [select] self.select_fields = [None] + self.select_related = False # See #7097. self.distinct = True self.order_by = order == 'ASC' and [1] or [-1] |
