+
+ m2m = obj.model._meta.many_to_many
+ for f in m2m:
+ try:
+ related_model_name = f.m2m_reverse_field_name()
+ except:
+ related_model_name = f.m2m_db_table().rsplit('_',1)[-1]
+
+ related_name = f.related_query_name()
+ if related_model_name in self.keys():
+ #print "XXX1", obj, f, related_name, related_model_name
+ refobj = self[related_model_name]
+ cobj = copy.deepcopy(obj)
+ cobj.multi=True
+ refobj.refs.append(cobj)
+
+ # deal with upgradeFrom_rel_+
+ if (related_name.endswith("+")):
+ continue
+
+ if (related_name!='+' and related_name.lower()!=str(obj).lower()):
+ #print "XXX2", obj, f, related_name, related_model_name, refobj.plural_name
+ refobj = self[related_model_name]
+ cobj = copy.deepcopy(refobj)
+ cobj.multi = True
+
+ obj.refs.append(cobj)
+
+
+