

def contribute_to_class(self, cls, name):
    sup = super(RelatedField, self)
    self.opts = cls._meta
    if hasattr(sup, 'contribute_to_class'):
        sup.contribute_to_class(cls, name)
    if ((not cls._meta.abstract) and self.rel.related_name):
        self.rel.related_name = (self.rel.related_name % {
            'class': cls.__name__.lower(),
            'app_label': cls._meta.app_label.lower(),
        })
    other = self.rel.to
    if (isinstance(other, six.string_types) or (other._meta.pk is None)):

        def resolve_related_class(field, model, cls):
            field.rel.to = model
            field.do_related_class(model, cls)
        add_lazy_relation(cls, self, other, resolve_related_class)
    else:
        self.do_related_class(other, cls)

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