+class View(Entity):
+ nodes = generic.GenericRelation(Node, content_type_field='view_content_type', object_id_field='view_object_id')
+
+ accepts_subpath = False
+
+ def attributes_with_node(self, node):
+ return QuerySetMapper(self.attribute_set, passthrough=node.attributes)
+
+ def relationships_with_node(self, node):
+ return QuerySetMapper(self.relationship_set, passthrough=node.relationships)
+
+ def render_to_response(self, node, request, path=None, subpath=None, extra_context=None):
+ raise NotImplementedError('View subclasses must implement render_to_response.')
+
+ class Meta:
+ abstract = True
+ app_label = 'philo'
+
+
+_view_content_type_limiter.cls = View
+
+
+class MultiView(View):