'Generates lines that define many to many relations for this instance.'

def get_many_to_many_lines(self, force=False):

    lines = []
    for (field, rel_items) in self.many_to_many_waiting_list.items():
        for rel_item in list(rel_items):
            try:
                pk_name = rel_item._meta.pk.name
                key = ('%s_%s' % (rel_item.__class__.__name__, getattr(rel_item, pk_name)))
                value = ('%s' % self.context[key])
                lines.append(('%s.%s.add(%s)' % (self.variable_name, field.name, value)))
                self.many_to_many_waiting_list[field].remove(rel_item)
            except KeyError:
                if force:
                    item_locator = orm_item_locator(rel_item)
                    self.context['__extra_imports'][rel_item._meta.object_name] = rel_item.__module__
                    lines.append(('%s.%s.add(    %s    )' % (self.variable_name, field.name, item_locator)))
                    self.many_to_many_waiting_list[field].remove(rel_item)
    if lines:
        lines.append('')
    return lines
