Fix setting app_label correctly for typeclass

This commit is contained in:
Griatch 2020-06-26 20:00:44 +02:00
parent a721760da6
commit e8b99175ad
3 changed files with 16 additions and 4 deletions

View file

@ -105,9 +105,20 @@ class TypeclassBase(SharedMemoryModelBase):
attrs["path"] = "%s.%s" % (attrs["__module__"], name)
# typeclass proxy setup
if "Meta" not in attrs:
app_label = None
# first check explicit __applabel__ on the typeclass
if "__applabel__" not in attrs:
# find the app-label in one of the bases, usually the dbmodel
for base in bases:
try:
attrs["__applabel__"] = base.__applabel__
except AttributeError:
pass
else:
break
class Meta(object):
if "Meta" not in attrs:
class Meta:
proxy = True
app_label = attrs.get("__applabel__", "typeclasses")