Fixed correct and separate handling of database model bases as compared to its proxy classes using different managers for each type (e.g. ObjectDB.objects.all() will return all ObjectDB instances(including proxy instances) whereas Object.objects.all() will only return Objects)

This commit is contained in:
Griatch 2014-12-22 08:54:53 +01:00
parent 554d1b9834
commit 2ee9e62336
15 changed files with 105 additions and 79 deletions

View file

@ -4,7 +4,8 @@ These managers handles the
from django.db import models
from django.db.models import Q
from src.typeclasses.managers import TypedObjectManager, returns_typeclass_list, returns_typeclass
from src.typeclasses.managers import (TypedObjectManager, TypeclassManager,
returns_typeclass_list, returns_typeclass)
_GA = object.__getattribute__
_PlayerDB = None
@ -251,7 +252,7 @@ class MsgManager(models.Manager):
# Channel manager
#
class ChannelManager(TypedObjectManager):
class ChannelDBManager(TypedObjectManager):
"""
This ChannelManager implements methods for searching
and manipulating Channels directly from the database.
@ -373,6 +374,9 @@ class ChannelManager(TypedObjectManager):
for a in channel.aliases.all()]]
return channels
class ChannelManager(ChannelDBManager, TypeclassManager):
pass
#
# PlayerChannelConnection manager