1
0
mirror of https://github.com/django/django.git synced 2024-12-28 20:16:19 +00:00
Commit Graph

17188 Commits

Author SHA1 Message Date
Aymeric Augustin
a4cb140004 Added get_app_config() to look up app configs by label.
Refactored get_app() to rely on that method.

get_app() starts by calling _populate(), which goes through
INSTALLED_APPS and, for each app, imports the app module and attempts to
import the models module. At this point, no further imports are
necessary to return the models module for a  given app. Therefore, the
implementation of get_app() can be simplified and the safeguards for
race conditions can be removed.

Besides, the emptyOK parameter isn't used anywhere in Django. It was
introduced in d6c95e93 but not actually used nor documented, and it has
just been carried around since then. Since it's an obscure private API,
it's acceptable to stop supporting it without a deprecation path. This
branch aims at providing first-class support for applications without a
models module eventually.

For backwards-compatibility, get_app() still raises ImproperlyConfigured
when an app isn't found, even though LookupError is technically more
correct. I haven't gone as far as to preserve the exact error messages.
I've adjusted a few tests instead.
2013-12-17 10:17:44 +01:00
Aymeric Augustin
c5eac3a2f6 Fleshed out AppConfig objects.
Marginally improved creation of AppConfig stubs for non-installed apps.
2013-12-17 10:17:44 +01:00
Aymeric Augustin
b55282b98b Moved list of models inside AppConfig instances.
This commit is a refactoring with no change of functionality, according
to the following invariants:

- An app_label that was in app_configs and app_models stays in
  app_config and has its 'installed' attribute set to True.

- An app_label that was in app_models but not in app_configs is added to
  app_configs and has its 'installed' attribute set to True.

As a consequence, all the code that iterated on app_configs is modified
to check for the 'installed' attribute. Code that iterated on app_models
is rewritten in terms of app_configs.

Many tests that stored and restored the state of the app cache were
updated.

In the long term, we should reconsider the usefulness of allowing
importing models from non-installed applications. This doesn't sound
particularly useful, can be a trap in some circumstances, and causes
significant complexity in sensitive areas of Django.
2013-12-17 10:17:44 +01:00
Aymeric Augustin
2c9e84af4a Removed unused attribute app_errors of the app cache.
get_app_errors() always returned an empty dictionary; this behavior is
preserved in django.db.models.loading until that module is deprecated.
2013-12-17 10:17:44 +01:00
Aymeric Augustin
0e9d3472d7 Stored AppConfig objects instead of models modules in the app cache.
This is a step towards allowing applications without a models module.
2013-12-17 10:17:44 +01:00
Aymeric Augustin
8662654d6d Removed module-level functions for the app cache.
Since the original ones in django.db.models.loading were kept only for
backwards compatibility, there's no need to recreate them. However, many
internals of Django still relied on them.

They were also imported in django.db.models. They never appear in the
documentation, except a quick mention of get_models and get_app in the
1.2 release notes to document an edge case in GIS. I don't think that
makes them a public API.

This commit doesn't change the overall amount of global state but
clarifies that it's tied to the app_cache object instead of hiding it
behind half a dozen functions.
2013-12-17 10:17:44 +01:00
Aymeric Augustin
334551339d Removed ModelDict.
Its only difference with OrderedDict is that it didn't deepcopy its
keys. However it wasn't used anywhere with models modules as keys, only
as values. So this commit doesn't result in any change in functionality.
2013-12-17 10:17:44 +01:00
Aymeric Augustin
9217b89da3 Removed BaseAppCache.app_store.
It was only storing redundant information. This is part of the effort to
allow applications without a models module.
2013-12-17 10:17:44 +01:00
Aymeric Augustin
860c2c8bc5 Moved django.db.models.loading to django.apps.cache.
This commit doesn't contain any code changes; it's purely a refactoring.
2013-12-17 10:17:43 +01:00
Artur Barseghyan
fe1389e911 Removed duplicated TimeField in __all__. 2013-12-16 17:52:37 -05:00
Loic Bistuer
3ce9829b61 Fixed #17413 -- Serialization of form errors along with all metadata. 2013-12-16 16:33:28 -05:00
Baptiste Mispelon
e2f142030b Fixed #21564 -- Use local request object when possible in generic views.
Thanks to trac user adepue for the report and original patch.
2013-12-16 16:58:08 +01:00
Baptiste Mispelon
3eb58f0dd1 Removed unnecessary function-level import. 2013-12-16 15:30:51 +01:00
Vajrasky Kok
db41778e8c Removed unnecessary call to force_text in utils.html.clean_html.
Refs #21574
2013-12-16 15:22:54 +01:00
Baptiste Mispelon
1689744aee Added some internal links to render_to_string documentation. 2013-12-15 23:02:20 +01:00
Peter Harley
cdd6617da6 Fixed #21619 -- Made SingleObjectMixin.get_object catch a more precise exception.
Thanks to Keryn Knight for the report.
2013-12-15 21:49:52 +01:00
Alex Gaynor
a1bc3683ff Merge pull request #2079 from brutasse/master
Typo in 1.7 release notes
2013-12-15 07:45:12 -08:00
Aymeric Augustin
3beffea4b0 Fixed #21621 -- Removed kqueue autoreloader. 2013-12-15 14:43:52 +01:00
Andrew Godwin
dfc95d240d Fix docs typo 2013-12-15 12:11:02 +00:00
Bruno Renié
f27ed47b60 Typo in 1.7 release notes 2013-12-15 10:00:13 +01:00
Baptiste Mispelon
e904d421d0 Added internal link to i18n documentation. 2013-12-15 01:50:54 +01:00
Alasdair Nicol
1fa681ee11 Fixed #21539 -- Added example of modelformset_factory's form argument 2013-12-14 16:35:14 -05:00
Claude Paroz
164a3a388c Revert "Allowed running GIS form tests that don't require spatial database"
This reverts commit 07fe0bf3f4.
This was not working properly on system without geos library
installed.
2013-12-14 21:03:09 +01:00
Bartolomé Sánchez
8f994f1bcc Fixed #21250 -- Made HTTP auth user header configurable in tests
Currently, if the authentication mechanism uses a custom HTTP header
and not REMOTE_USER, it is not easy to test. This commit modifies
remote user tests in order to make them more generic.
2013-12-14 13:02:56 -05:00
Marti Raudsepp
75ec1fdf16 Clarifed table rewrites in migration docs.
Small nitpicks. All column-related ALTER TABLE commands take an
exclusive table lock in PostgreSQL. The difference is that adding a
column without default doesn't cause a table rewrite, so the lock is
held only for a short time.

The time taken is more accurately proportional to table size, not row
count.
2013-12-14 12:34:45 -05:00
Loic Bistuer
6685713869 Fixed E127 pep8 warnings. 2013-12-14 11:59:15 -05:00
Chris Jerdonek
d599b590eb Fixed #21614 -- improved docs on configuring email for development. 2013-12-14 11:20:38 -05:00
Bouke Haarsma
bed52afee7 Removed usage of to-be-deprecated ADMIN_FOR setting in contributing docs 2013-12-14 16:49:25 +01:00
Chris Jerdonek
e1cfc4b96a Fixed link text for "Testing in Django" in tutorial 5. 2013-12-14 10:41:26 -05:00
Jakub Gocławski
07fe0bf3f4 Allowed running GIS form tests that don't require spatial database 2013-12-14 13:57:58 +01:00
Jakub Gocławski
2ddf1fc50f Fixed #21606 -- Fixed default_lat and default_lon override in OSMWidget 2013-12-14 13:53:37 +01:00
johannes-gehrs
f685f94c98 Fixed #21580 -- Clarified why render() does not return a TemplateResponse object. 2013-12-13 18:56:18 -05:00
Tim Graham
ccd80dc3b6 Added 1.6.2 release notes stub. 2013-12-13 18:42:24 -05:00
Tim Graham
99b7d74914 Merge pull request #2067 from dominicrodger/master
Moving notes for assertNumQueries next to the other changes to test infrastructure
2013-12-13 07:36:57 -08:00
Baptiste Mispelon
d4d0dd7416 Changed documentation of HttpResponse.content to indicate it's a bytestring 2013-12-13 11:42:14 +01:00
Tim Graham
e01ade61fe Copied 1.6.1 release notes from stable/1.6.x branch. 2013-12-12 15:08:22 -05:00
Baptiste Mispelon
2c837233f5 Fixed #21574 -- Handle bytes consistently in utils.text.normalize_newlines.
All input is now coerced to text before being normalized.
This changes nothing under Python 2 but it allows bytes
to be passed to the function without a TypeError under Python3
(bytes are assumed to be utf-8 encoded text).

Thanks to trac user vajrasky for the report.
2013-12-12 16:09:12 +01:00
Baptiste Mispelon
b9c7234e2a Fixed PEP257 violations (single-quoted docstrings) in utils.text. 2013-12-12 16:08:59 +01:00
Dominic Rodger
cddb1e95b9 Moving notes for assertNumQueries next to the other changes to test infrastructure 2013-12-12 14:48:54 +00:00
Claude Paroz
7d44b5d5d0 Improved translation maintenance script
Do not fetch 'en' catalogs, neither files with translation stats
lower than 5%. Centralized resource filtering.
2013-12-12 15:38:50 +01:00
Rémy HUBSCHER
24fcca6bdd Fixed #21591 -- Added documentation about contrib.messages.get_messages.
Refs https://code.djangoproject.com/ticket/21591
Thanks to track user merb for the report.
2013-12-12 14:56:34 +01:00
Ludwik Trammer
9922ed46e2 Fixed #21473 -- Limited language preservation to logout
Current language is no longer saved to session by LocaleMiddleware
on  every response (the behavior introduced in #14825).
Instead language stored in session is reintroduced into new session
after logout.

Forward port of c558a43fd6 to master.
2013-12-12 10:24:43 +01:00
Aymeric Augustin
9c5f59f489 Brought comments in sync with the code in BaseAppCache. 2013-12-11 23:16:06 +01:00
Dominic Rodger
5cd6477fd6 Fixed #21462 -- Made assertNumQueries print executed queries on failure. 2013-12-11 15:24:17 -05:00
Simon Charette
75924cfa6d Fixed #21563 -- Single related object descriptors should work with hasattr.
Thanks to Aymeric Augustin for the review and Trac alias monkut for the report.
2013-12-11 12:49:28 -05:00
Claude Paroz
c7c647419c Fixed #21510 -- Readded search reset link in changelist search bar
Thanks moritz.pfeiffer at alp-phone.ch for the report and
Tim Graham for the initial patch.
2013-12-11 15:30:20 +01:00
Andrew Godwin
5db028affb Fix altering of SERIAL columns and InnoDB being picky about FK changes 2013-12-11 14:19:05 +00:00
Andrew Godwin
cee4fe7307 Better default name for migrations we can't give nice names to 2013-12-11 13:23:07 +00:00
Andrew Godwin
248fdb1110 Change FKs when what they point to changes 2013-12-11 13:16:29 +00:00
Andrew Godwin
f3582a0594 Fix sqlmigrate's output for parameters 2013-12-11 13:12:23 +00:00