

def create_many_to_many_intermediary_model(field, klass):
    from django.db import models
    managed = True
    if (isinstance(field.rel.to, six.string_types) and (field.rel.to != RECURSIVE_RELATIONSHIP_CONSTANT)):
        to_model = field.rel.to
        to = to_model.split('.')[(- 1)]

        def set_managed(field, model, cls):
            field.rel.through._meta.managed = (model._meta.managed or cls._meta.managed)
        add_lazy_relation(klass, field, to_model, set_managed)
    elif isinstance(field.rel.to, six.string_types):
        to = klass._meta.object_name
        to_model = klass
        managed = klass._meta.managed
    else:
        to = field.rel.to._meta.object_name
        to_model = field.rel.to
        managed = (klass._meta.managed or to_model._meta.managed)
    name = ('%s_%s' % (klass._meta.object_name, field.name))
    if ((field.rel.to == RECURSIVE_RELATIONSHIP_CONSTANT) or (to == klass._meta.object_name)):
        from_ = ('from_%s' % to.lower())
        to = ('to_%s' % to.lower())
    else:
        from_ = klass._meta.object_name.lower()
        to = to.lower()
    meta = type('Meta', (object,), {
        'db_table': field._get_m2m_db_table(klass._meta),
        'managed': managed,
        'auto_created': klass,
        'app_label': klass._meta.app_label,
        'db_tablespace': klass._meta.db_tablespace,
        'unique_together': (from_, to),
        'verbose_name': ('%(from)s-%(to)s relationship' % {
            'from': from_,
            'to': to,
        }),
        'verbose_name_plural': ('%(from)s-%(to)s relationships' % {
            'from': from_,
            'to': to,
        }),
    })
    return type(name, (models.Model,), {
        'Meta': meta,
        '__module__': klass.__module__,
        from_: models.ForeignKey(klass, related_name=('%s+' % name), db_tablespace=field.db_tablespace),
        to: models.ForeignKey(to_model, related_name=('%s+' % name), db_tablespace=field.db_tablespace),
    })

dataset/ETHPy150Open AppScale/appscale/AppServer/lib/django-1.5/django/db/models/fields/related.py create_many_to_many_intermediary_model/original