Skip to content

Commit

Permalink
Merge pull request #170 from hobarrera/django19
Browse files Browse the repository at this point in the history
Django19
  • Loading branch information
vdboor committed Dec 16, 2015
2 parents 6a86a5c + 8200f91 commit 999775c
Show file tree
Hide file tree
Showing 21 changed files with 635 additions and 335 deletions.
24 changes: 24 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,25 +5,49 @@ python:
- "3.2"
- "3.3"
- "3.4"
- "3.5"
env:
- DJANGO=">=1.4,<1.5"
- DJANGO=">=1.5,<1.6"
- DJANGO=">=1.6,<1.7"
- DJANGO=">=1.7,<1.8"
- DJANGO=">=1.8,<1.9"
- DJANGO=">=1.9a1,<1.10"

matrix:
exclude:
- python: "3.5"
env: DJANGO=">=1.4,<1.5"
- python: "3.5"
env: DJANGO=">=1.5,<1.6"
- python: "3.5"
env: DJANGO=">=1.6,<1.7"
- python: "3.5"
env: DJANGO=">=1.7,<1.8"
- python: "3.5"
env: DJANGO=">=1.8,<1.9"

- python: "3.4"
env: DJANGO=">=1.4,<1.5"
- python: "3.4"
env: DJANGO=">=1.9a1,<1.10"

- python: "3.3"
env: DJANGO=">=1.4,<1.5"
- python: "3.3"
env: DJANGO=">=1.9a1,<1.10"

- python: "3.2"
env: DJANGO=">=1.4,<1.5"
- python: "3.2"
env: DJANGO=">=1.9a1,<1.10"

- python: "2.6"
env: DJANGO=">=1.7,<1.8"
- python: "2.6"
env: DJANGO=">=1.8,<1.9"
- python: "2.6"
env: DJANGO=">=1.9a1,<1.10"

install:
- pip install django$DJANGO coverage==3.6
Expand Down
1 change: 1 addition & 0 deletions AUTHORS.rst
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ Contributors
* Evan Borgstrom
* Gavin Wahl
* Germán M. Bravo
* Hugo Osvaldo Barrera
* Jacob Rief
* Jedediah Smith (proxy models support)
* John Furr
Expand Down
2 changes: 1 addition & 1 deletion docs/advanced.rst
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ Advanced features
In the examples below, these models are being used::

from django.db import models
from polymorphic import PolymorphicModel
from polymorphic.models import PolymorphicModel

class ModelA(PolymorphicModel):
field1 = models.CharField(max_length=10)
Expand Down
14 changes: 9 additions & 5 deletions docs/managers.rst
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,10 @@ manager class, just derive your manager from ``PolymorphicManager`` instead of
``models.Manager``. As with vanilla Django, in your model class, you should
explicitly add the default manager first, and then your custom manager::

from polymorphic import PolymorphicModel, PolymorphicManager
from polymorphic.models import PolymorphicModel
from polymorphic.manager import PolymorphicManager

class TimeOrderedManager(PolymorphicManager):
class TimeOrderedManager(PolymorphicManager):
def get_queryset(self):
qs = super(TimeOrderedManager,self).get_queryset()
return qs.order_by('-start_date') # order the queryset
Expand Down Expand Up @@ -41,9 +42,10 @@ base models, as long as these are polymorphic. This means that all
managers defined in polymorphic base models continue to work as
expected in models inheriting from this base model::

from polymorphic import PolymorphicModel, PolymorphicManager
from polymorphic.models import PolymorphicModel
from polymorphic.manager import PolymorphicManager

class TimeOrderedManager(PolymorphicManager):
class TimeOrderedManager(PolymorphicManager):
def get_queryset(self):
qs = super(TimeOrderedManager,self).get_queryset()
return qs.order_by('-start_date') # order the queryset
Expand Down Expand Up @@ -77,7 +79,9 @@ which is the queryset class the manager should use. Just as with vanilla Django,
you may define your own custom queryset classes. Just use PolymorphicQuerySet
instead of Django's QuerySet as the base class::

from polymorphic import PolymorphicModel, PolymorphicManager, PolymorphicQuerySet
from polymorphic.models import PolymorphicModel
from polymorphic.manager import PolymorphicManager
from polymorphic.query import PolymorphicQuerySet

class MyQuerySet(PolymorphicQuerySet):
def my_queryset_method(...):
Expand Down
2 changes: 1 addition & 1 deletion docs/quickstart.rst
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ Making Your Models Polymorphic

Use ``PolymorphicModel`` instead of Django's ``models.Model``, like so::

from polymorphic import PolymorphicModel
from polymorphic.models import PolymorphicModel

class Project(PolymorphicModel):
topic = models.CharField(max_length=30)
Expand Down
6 changes: 3 additions & 3 deletions example/example/urls.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
from django.conf.urls import patterns, include, url
from django.conf.urls import include, url
from django.contrib import admin
from django.core.urlresolvers import reverse_lazy
from django.views.generic import RedirectView

admin.autodiscover()

urlpatterns = patterns('',
urlpatterns = [
url(r'^admin/', include(admin.site.urls)),
url(r'^$', RedirectView.as_view(url=reverse_lazy('admin:index'), permanent=False)),
)
]
58 changes: 28 additions & 30 deletions example/pexp/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,36 +42,34 @@ class ModelAAdmin(PolymorphicParentModelAdmin):
admin.site.register(ModelA, ModelAAdmin)


if 'Model2A' in globals():
class Model2AChildAdmin(PolymorphicChildModelAdmin):
base_model = Model2A

class Model2AAdmin(PolymorphicParentModelAdmin):
base_model = Model2A
list_filter = (PolymorphicChildModelFilter,)
child_models = (
(Model2A, Model2AChildAdmin),
(Model2B, Model2AChildAdmin),
(Model2C, Model2AChildAdmin),
)

admin.site.register(Model2A, Model2AAdmin)


if 'UUIDModelA' in globals():
class UUIDModelAChildAdmin(PolymorphicChildModelAdmin):
base_model = UUIDModelA

class UUIDModelAAdmin(PolymorphicParentModelAdmin):
base_model = UUIDModelA
list_filter = (PolymorphicChildModelFilter,)
child_models = (
(UUIDModelA, UUIDModelAChildAdmin),
(UUIDModelB, UUIDModelAChildAdmin),
(UUIDModelC, UUIDModelAChildAdmin),
)

admin.site.register(UUIDModelA, UUIDModelAAdmin)
class Model2AChildAdmin(PolymorphicChildModelAdmin):
base_model = Model2A

class Model2AAdmin(PolymorphicParentModelAdmin):
base_model = Model2A
list_filter = (PolymorphicChildModelFilter,)
child_models = (
(Model2A, Model2AChildAdmin),
(Model2B, Model2AChildAdmin),
(Model2C, Model2AChildAdmin),
)

admin.site.register(Model2A, Model2AAdmin)


class UUIDModelAChildAdmin(PolymorphicChildModelAdmin):
base_model = UUIDModelA

class UUIDModelAAdmin(PolymorphicParentModelAdmin):
base_model = UUIDModelA
list_filter = (PolymorphicChildModelFilter,)
child_models = (
(UUIDModelA, UUIDModelAChildAdmin),
(UUIDModelB, UUIDModelAChildAdmin),
(UUIDModelC, UUIDModelAChildAdmin),
)

admin.site.register(UUIDModelA, UUIDModelAAdmin)


class ProxyChildAdmin(PolymorphicChildModelAdmin):
Expand Down

0 comments on commit 999775c

Please sign in to comment.