0
我在我的幾個應用程序的模型(不是全部)上使用我的自定義權限mixin。正在更新Django mixin子實例
對於需要從「舊上下文」權限合併到「新上下文」權限的情況,我希望具有更改所有模型中的相應權限引用屬性的功能,該屬性將此mixin進行了子類化。
我怎麼知道哪些模型子類化了這個權限mixin,並且他們有繼承的權限引用屬性?
其實我想在我的mixin有這樣的功能:
class WorkspaceManagedMixin(models.Model):
workspace = models.ForeignKey(Workspace)
class Meta:
abstract = True
@classmethod
def merge_to(cls, from_wspace, to_wspace):
"""
Reallocating workspace's objects to other workspace.
"""
workspace_managed_models = [] # HOW TO GET THIS?
try:
with transaction.atomic():
for model in workspace_managed_models:
model.objects.filter(
workspace=from_wspace,
).update(workspace=to_wspace)
except IntegrityError as e: # or DatabaseError
raise e
子類的模型可以在項目中的其他Django應用程序。