Commit Graph

817 Commits (21f635d65abd3ddff8edd9077f82d0f56f431da8)

Author SHA1 Message Date
Diederik van der Boor 7de1366f6f Improve docs of PolymorphicChildModelAdmin attributes
(cherry picked from commit c437524876)
2018-04-16 11:21:51 +02:00
Diederik van der Boor fe7de17ecf Make the admin `base_model` setting optional.
It can be detected using get_base_polymorphic_model()

(cherry picked from commit cf0cb2478f)
2018-04-16 11:21:51 +02:00
Diederik van der Boor 874b60ec40 Added `get_base_polymorphic_model()` to detect the common base class for a polymorphic model.
(cherry picked from commit 04d4181e17)
2018-04-16 11:21:51 +02:00
Diederik van der Boor fa9612d49c Small Django 1.8/19 difference for .only() 2018-04-16 11:21:39 +02:00
trbs 1c110ae4bb fix error with .defer and child models that use the same parent
When using .defer on a PolymorphicQuerySet with multiple childs that
subclass from the same polymorphic parent model yield an error like:

>>> Base.objects.defer('ModelY___field_y')
Traceback (most recent call last):
...
FieldDoesNotExist: ModelX has no field named 'field_y'

(cherry picked from commit 9500a21f82)
2018-04-16 11:08:27 +02:00
Diederik van der Boor 171df51428 Ensure consistent ordering in testing reset_polymorphic_ctype
Amends: 171d14f369
(cherry picked from commit 77797bfa12)
2018-04-16 11:08:27 +02:00
Diederik van der Boor 467e6f517e Improve reset_polymorphic_ctype() for reliability and test it.
This function can now be safely used on a set of models.

(cherry picked from commit 171d14f369)
2018-04-16 11:08:27 +02:00
Diederik van der Boor db46dbb446 Also introduce a new exception type for invalid database IDs
(cherry picked from commit 4835cd244e)
2018-04-16 11:08:27 +02:00
Diederik van der Boor f126f5f304 Provide a better error message when polymorphic_ctype_id is Null
refs #51, #140, #304

(cherry picked from commit fb8eed78ad)
2018-04-16 11:08:27 +02:00
Krzysztof Nazarewski 925c4de34f `declared_fieldsets` typo fix
(cherry picked from commit 697df65c7b)
2018-04-16 11:08:27 +02:00
Tadas Dailyda 731fd51a67 skip manager validation on swapped models 2018-04-16 10:42:01 +02:00
Tadas Dailyda 6013de93d3 tests for abstract/swappable model initialization
(cherry picked from commit 0fea8a4d92)
2018-04-16 10:41:50 +02:00
Diederik van der Boor 3417d466c4
Merge pull request #345 from T4m/patch-1
Update managers.rst
2018-04-16 10:24:26 +02:00
Diederik van der Boor c3f07b418a
Merge pull request #343 from apirobot/django-rest-polymorphic
Add django-rest-polymorphic to the third-party apps
2018-04-16 10:23:56 +02:00
Diederik van der Boor 81cb2864a9
Merge pull request #344 from GeyseR/patch-1
Fixed link to Jacob Kaplan-Moss blog post
2018-03-14 12:08:37 +01:00
Cornut Matthieu 09c50a55c9
Update managers.rst
The PolymorphicManager must be instanciated
2018-03-13 17:11:24 +01:00
Sergey Fursov a6ca6b1370
Fixed link to Jacob Kaplan-Moss blog post 2018-03-13 16:23:00 +03:00
Denis Orehovsky e9b863bb9d Add django-rest-polymorphic to the third-party apps 2018-03-12 08:35:13 +03:00
Diederik van der Boor d3f044871b fix manager docs imports
Mentioned in #61
2018-02-19 11:06:39 +01:00
Diederik van der Boor ff57aa57a3 include test for missing Meta.manager_inheritance_from_future 2018-02-05 13:31:00 +01:00
Diederik van der Boor 78682d2022 Bump to v2.0.2 2018-02-05 13:28:40 +01:00
Diederik van der Boor ea53b995a1 Enforce `manager_inheritance_from_future` on every model 2018-02-05 13:26:54 +01:00
Diederik van der Boor a6aa95c07e Fixed internal usage of deprecated `base_objects`
Reverted the change in f898f80594 that
also replaces the internal `base_objects` with `.non_polymorphic()`.
That also changed which querysets was used. Use a clean queryset
instead that has no select-related/prefetch information, etc.. like
previous versions did.
2018-02-05 13:00:23 +01:00
Diederik van der Boor d36f55a58f Bump to v2.0.1 2018-02-05 10:57:52 +01:00
Diederik van der Boor c56d22b5b8 travis: use newer postgres for Django 2.0 tests 2018-02-05 10:57:52 +01:00
Diederik van der Boor 852ecf6ea9 Turn the manager inheritance error into a warning.
Not all projects have queryset issues, for example the class could be a
leaf that doesn't get inherited further.

  class PolymorphicModel
    class ContentItem
      class TextItem   <-- gets error, but it's the leaf anyway.
2018-02-05 10:19:18 +01:00
Diederik van der Boor f898f80594 Fixed unwanted manager replacement in Django 1.11 projects.
Django 1.11 uses the old manager inheritance system, unless it's
overwritten with manager_inheritance_from_future. With a class layout
like:

  PolymorphicModel  (abstract)
    PolymorphicMPTTModel  (abstract)
      GenericCustomer  (concrete, has objects = ...)
        CustomerGroupBase (abstract, has objects = ...)
          Partner (concrete, no manager)
            BranchPartner  (concrete, no manager)

The last level gets a normal Django Manager instead of the polymorphic
manager. Because the PolymorphicModel had a base_objects manager, this
was typically used as _default_manager. Now that the default manager is
no longer affected, it's also easier to detect why the "objects" doesn't
get the proper manager type. Using "manager_inheritance_from_future" is
recommended instead to have both the right behavior and forward
Django 2.x compatibility.
2018-02-04 13:22:51 +01:00
Diederik van der Boor 723c78065c PEP8 runtests 2018-01-31 22:56:05 +01:00
Diederik van der Boor d4cf32b5b6 Also show warning via coverage and travis 2018-01-31 22:52:07 +01:00
Diederik van der Boor e21843aef9 Show deprecation warnings during tests 2018-01-31 22:37:11 +01:00
Diederik van der Boor f84e732767 fixed test management commands 2018-01-22 15:22:39 +01:00
Diederik van der Boor f7c9df935f move _polymorphic_iterator to PolymorphicModelIterable as there is no second compatibility code path anymore 2018-01-22 15:22:27 +01:00
Diederik van der Boor fa3b874a54 Bumped to 2.0 2018-01-22 10:18:51 +01:00
Diederik van der Boor 9d651a1cdb Fix the add_media() hack for Django 2.0 2018-01-18 15:45:18 +01:00
Diederik van der Boor e164026b43
Merge pull request #318 from meshy/django-2.0
Add django 2.0 support
2018-01-18 15:43:59 +01:00
Charlie Denton ed40b9e3e2
Use assertRegex to ignore object IDs
Sometimes the tests failed because these objects had IDs that differed
from expectations. As the IDs are not relevant to this test, I have
replaced the exact string match with a regex match that accepts any ID.
2018-01-17 22:02:19 +00:00
Charlie Denton c3179058d3
Update trove classifiers and django requirement 2018-01-16 10:54:33 +00:00
Charlie Denton 388d0e12c0
Update docs to reflect supported django versions 2018-01-16 10:54:33 +00:00
Charlie Denton ca13180a61
Clean up unrequired compat import 2018-01-16 10:54:33 +00:00
Charlie Denton 3f6d94139c
Remove unused function in tests 2018-01-16 10:54:33 +00:00
Charlie Denton 6fb34a0a44
Mention django 2.0 support in changelog 2018-01-16 10:53:35 +00:00
Charlie Denton e2bf741d5d
Remove models that are not referenced in tests
This silences one instance of the warning that's being printed in tests
for versions of Django before 2.0:

> RemovedInDjango20Warning: Managers from concrete parents will soon
> qualify as default managers if they appear before any other managers
> in the MRO.
2018-01-16 10:53:35 +00:00
Charlie Denton 120520e44d
Fix `add_media` util for Django 2.0
Neither `add_css` nor `add_js` exist in Django 2.0 because the method
for adding `Media` classes together has changed.

Ref: c19b56f633
2018-01-16 10:53:34 +00:00
Charlie Denton 60e56ed472
Add django 2.0 to tests 2018-01-16 10:53:34 +00:00
Charlie Denton 96b11b50f9
Remove django 1.10 from tests 2018-01-16 10:53:34 +00:00
Charlie Denton 1a4595f5ce
Fix deprecated admin site URL in tests
The old format was deprecated in Django 1.9, and removed in Django 2.0.

Ref: https://docs.djangoproject.com/en/stable/releases/1.9/#passing-a-3-tuple-or-an-app-name-to-include
2018-01-16 10:53:34 +00:00
Charlie Denton 840bfe8d22
Fix import in Django 2.0
Because the URL mechanism has changed in Django 2.0, the
RegexURLResolver has been renamed.
2018-01-16 10:53:34 +00:00
Diederik van der Boor 7fe7861f45 Amend PR #336: fix migration file syntax for Django 1.10 2018-01-15 15:08:14 +01:00
Diederik van der Boor 38a91a8622
Merge pull request #336 from reef-technologies/bulk_create_support
Bulk create support
2018-01-15 15:03:48 +01:00
Diederik van der Boor 733b28c274
Merge pull request #322 from skirsdeda/admin_fieldsets_fix
Admin fieldsets fix (another attempt)
2018-01-15 14:49:17 +01:00