def get_node_class_for_model(model, for_concrete_model=True):
"""
Model nodes represent a model instance in the database.
:param model: Django model class.
:returns: A ``ModelNode`` class.
"""
if for_concrete_model:
model = model._meta.concrete_model
if model in __node_cache__:
return __node_cache__[model]
else:
@six.add_metaclass(ModelNodeMeta)
class ModelNode(ModelNodeMixin, StructuredNode):
__metaclass_model__ = model
class Meta:
model = None # Will pick model from parent class __metaclass_model__ attribute
__node_cache__[model] = ModelNode
return ModelNode
评论列表
文章目录