<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def get_plugins(cls):
 """ Returns all plugin instances of plugin point, passing all args and kwargs to plugin constructor. """

        # Django >= 1.9 changed something with the migration logic causing
        # plugins to be executed before the corresponding database tables
        # exist. This method will only return something if the database
        # tables have already been created.
        # XXX: I don't fully understand the issue and there should be
        # another way but this appears to work fine.
        if django_version >= (1, 9) and \
                not db_table_exists(Plugin._meta.db_table):
            raise StopIteration

        if is_plugin_point(cls):
            for plugin_model in cls.get_plugins_qs():
                yield plugin_model.get_plugin()
        else:
            raise Exception(_('This method is only available to plugin point '
                              'classes.'))