Jedediah Smith
e2cfbf3898
Support proxy models (still requires one query per proxied model, not optimal)
2013-04-07 23:36:09 +02:00
Diederik van der Boor
78253bfe12
Fix passing custom querysets to related managers.
...
* The custom manager was not assigned to _default_manager;
get_first_user_defined_manager() always returned None
* The PolymorphicManager couldn't remember it's custom queryset;
a RelatedManager creates a new instance of a manager, so the queryset
parameter should be known at class-level, not object level.
* The old method of providing a custom queryset class has been deprecated.
2013-04-07 01:39:58 +02:00
Diederik van der Boor
1f26302632
Fix Django 1.5 support, tests pass again.
...
The reason polymorphic broke was because it couldn't find some managers
anymore in the inheritance tree. Django 1.5 removes these and replaces
them with an `AbstractManagerDescriptor`. This patch restores those objects
2013-04-07 00:43:41 +02:00
Diederik van der Boor
ca4067e279
Add proxy model test that fails in Django 1.5
2013-04-05 17:36:50 +02:00
Chris Glass
62d97f29b1
Merge pull request #30 from vdboor/cleanup_for_15
...
Cleanup before porting to Django 1.5
2013-04-05 03:09:42 -07:00
Diederik van der Boor
e411660b80
Tests: fix missed error in last commit
...
(cannot amend, already pushed for review)
2013-04-05 12:01:44 +02:00
Diederik van der Boor
ebced5f4eb
Tests: make old code more readable
2013-04-05 11:45:07 +02:00
Diederik van der Boor
7ca328f9e4
Tests: auto removed unused imports
2013-04-05 11:39:57 +02:00
Diederik van der Boor
2d83124f51
Tests: remove Django 1.1 compatibility check
2013-04-05 11:38:56 +02:00
Diederik van der Boor
25aa32d7bd
Replaced the doctests with unit tests
...
Making debugging tests much easier. The same repr() logic is preserved,
so this is essentually a huge coding style change.
2013-04-05 11:33:41 +02:00
Diederik van der Boor
32426aa41a
Use self.assertEqual() in tests instead of assert statement.
2013-04-05 09:54:48 +02:00
Julian Wachholz
a6f8429aae
django.conf.urls.defaults is deprecated; use django.conf.urls instead
2013-04-04 23:41:07 +03:00
Diederik van der Boor
e7a2340723
Remove polymorphic_dumpdata command and assorted scripts.
...
The polymorphic_dumpdata command carried a deprecation note for a long
time now. The scripts for testing python versions are replaced by tox already.
2013-03-28 14:16:45 +01:00
Chris Glass
30172d3110
Merge pull request #24 from onepercentclub/port-regression-doctest-to-unit-test
...
Port regression doctest to unit test
2013-03-25 02:04:07 -07:00
Ben Konrath
8e4697c741
Port regression doctest to unit test.
2013-03-18 22:33:55 +01:00
Ben Konrath
dc6f41c7e9
Update URLs to github hosted webpage.
2013-03-18 21:27:23 +01:00
Ben Konrath
318dd3d67a
Fixed the default manager test failures.
...
According to the django docs (1.4 / 1.5), the default manager for subclasses of
PolymorphicModel should be PolymorphicManager:
3. The default manager on a class is either the first manager declared on the
class, if that exists, or the default manager of the first abstract base
class in the parent hierarchy, if that exists. If no default manager is
explicitly declared, Django’s normal default manager is used.
https://docs.djangoproject.com/en/1.4/topics/db/managers/#custom-managers-and-model-inheritance
https://docs.djangoproject.com/en/1.5/topics/db/managers/#custom-managers-and-model-inheritance
2013-03-18 20:56:12 +01:00
Ben Konrath
b718acf005
Update db_type method for Django >= 1.4 DB settings format.
2013-03-18 20:50:45 +01:00
Ben Konrath
1ef9e068df
Import settings in tests from django.conf.
2013-03-18 20:47:56 +01:00
Diederik van der Boor
720a189f5a
Remove unused load statements in add_type_form.html
...
This addresses Django 1.5 compatibility as well (see #16 )
2013-03-18 12:15:10 +01:00
Diederik van der Boor
f687dc18b1
SQL optimization, avoid query in pre_save_polymorphic()
...
This query is visible in the django-debug-toolbar POST redirect page
2012-11-15 10:42:02 +01:00
Diederik van der Boor
0d5f2fd943
Change the child model registration to fix raw_id_fields.
...
As discovered in django-polymorphic-tree and django-fluent-pages,
the raw_id_fields didn't work in Django 1.4 because the fields actively
check which models are actually registered in the admin site.
Hence, the parent admin site _registry is inserted in the child admin as
well. This also completely moves the initialisation of the child admin
into this class, using a `get_child_models()` function,
akin to the static `child_models` attribute.
2012-07-24 21:50:52 +02:00
Diederik van der Boor
0b608cc67e
Minor extension: allow apps to override the type label in the add form easily
...
When overriding apps, this turns out to be a very useful feature to
have.
2012-07-18 00:51:34 +02:00
Diederik van der Boor
8d426d9243
Remove abc marker because methods are no longer abstract
2012-07-13 18:29:02 +02:00
Diederik van der Boor
b2e308d30c
Improve PolymorphicParentAdmin, simplify, fix templates
...
During the development of django-polymorphic-tree it was discovered that
the PolymorphicParentModelAdmin could actually be made much simpler.
It features a `child_models` attribute now, so there is very little code
needed to actually implement a polymorphic admin now.
Also found various issues which are together fixed in this commit for
pulling.
2012-07-13 16:01:58 +02:00
Diederik van der Boor
2e76811adb
Adding PolymorphicChildModelAdmin to __all__ as well
2012-07-05 23:27:34 +02:00
Diederik van der Boor
5d65bf4bbc
Added polymorphic admin interface
...
Extracted from django-fluent-pages, ready for other apps too.
The polymorphic admin is implemented via a parent admin for the base
model, and separate admin interfaces for the child models.
The parent model needs to inherit PolymorphicParentModelAdmin,
and override `get_admin_for_model()` and `get_child_model_classes()`
to find the child admin interfaces.
The derived models have their own `ModelAdmin` class, which inherits
from `PolymorphicChildModelAdmin`. The parent admin redirects it's
change and delete views to the child admin.
By adding `polymorphic` to the INSTALLED_APPS, the breadcrumbs will be
fixed as well, to remain unchanged between the child applications.
2012-07-05 23:16:46 +02:00
Jonas Obrist
870091c13f
Explicit is better than implicit
2012-01-09 16:47:59 +01:00
German M. Bravo
f987818fe4
PEP 8 cleaning
...
Conflicts:
polymorphic/__init__.py
polymorphic/polymorphic_model.py
2011-12-20 18:59:50 +00:00
German M. Bravo
c9922d8987
PEP 8 cleaning
2011-12-20 18:59:50 +00:00
German M. Bravo
bb06d6d12b
Some more PEP 8 cleaning
2011-12-20 18:59:25 +00:00
Martin Brochhaus
dfc8eff1e1
Not using attrs when getting the first user defined manager.
2011-12-09 15:22:38 +08:00
Chris Glass
c7cbfc0e23
Removed dead imports.
2011-05-19 15:16:39 +02:00
Jonas Obrist
10b8901088
Edited polymorphic/showfields.py via GitHub
2011-05-19 06:08:39 -07:00
Jonas Obrist
30f11a35d7
Edited polymorphic/query_translate.py via GitHub
2011-05-19 06:07:25 -07:00
Jonas Obrist
6f8e31222d
PEP-8, it's a thing!
2011-05-19 06:05:49 -07:00
Jonas Obrist
ba2cb60c9d
Edited polymorphic/polymorphic_model.py via GitHub
2011-05-19 06:04:23 -07:00
Jonas Obrist
fabae70ed4
protip: after a colon in python, HIT THE ENTER KEY!
2011-05-19 06:02:53 -07:00
Jonas Obrist
f42c58c0d4
it's python, not javascript!
2011-05-19 06:01:07 -07:00
Bert Constantin
2c47db8fcc
Fixed github issue 15 (query result incomplete with inheritance). Thanks to John Debs.
2011-01-24 17:03:23 +01:00
Bert Constantin
3cc7d483c1
minor additions in base.py
2011-01-24 16:45:58 +01:00
Bert Constantin
4a4cfd82a2
translate_polymorphic_Q_object: fixed test case, and made the function a member of PolymorphicObject.
...
Minor test fixes: warnings fixed, test_tool.py renamed as it's no test
2010-11-12 07:19:23 +01:00
Bert Constantin
f78b27dc1a
updated docs, tests, misc
2010-11-02 12:21:46 +01:00
Bert Constantin
52f32c1fc3
improved showfields.py for better and more precise output, updated tests
2010-11-02 12:21:46 +01:00
Bert Constantin
a4ac6cc91d
fix object retrieval problem occuring with some custom primary key fields
...
+ added UUIDField as test case
2010-11-02 12:21:22 +01:00
Bert Constantin
6befe6c733
added "queryset.get_real_instances()" usage, added testcase
2010-11-02 12:10:02 +01:00
Bert Constantin
8c3df56cb6
non_polymorphic() queryset member function added
2010-10-23 12:22:13 +02:00
Bert Constantin
19adbdaf2c
extra(): Re-implemented. Now is polymorphic (nearly) without restrictions.
...
Added test cases + docs.
2010-10-23 11:52:04 +02:00
Bert Constantin
6c8d28cbbc
extra(): throw error if unsupported argument is encountered, support 'params' argument, special case Django 1.1
2010-10-22 13:37:26 +02:00
Abel Daniel
486a579ac7
Make .extra() only disable polymorphic query if an arg that is currently
...
not handled is actually used. I.e. if all args are supported, then
do polymorphic query by default.
2010-10-22 13:35:50 +02:00