Merge pull request #1450 from astaxie/revert-1439-master
Revert "Adding support for junction tables with other fields which arent FK and PK."
This commit is contained in:
		
						commit
						fb7314f8ac
					
				| @ -44,20 +44,7 @@ func (o *queryM2M) Add(mds ...interface{}) (int64, error) { | |||||||
| 	dbase := orm.alias.DbBaser | 	dbase := orm.alias.DbBaser | ||||||
| 
 | 
 | ||||||
| 	var models []interface{} | 	var models []interface{} | ||||||
| 	var other_values []interface{} |  | ||||||
| 	var other_names []string |  | ||||||
| 
 | 
 | ||||||
| 	for _, colname := range mi.fields.dbcols { |  | ||||||
| 		if colname != mfi.column && colname != rfi.column && colname != fi.mi.fields.pk.column { |  | ||||||
| 			other_names = append(other_names, colname) |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 	for i, md := range mds { |  | ||||||
| 		if reflect.Indirect(reflect.ValueOf(md)).Kind() != reflect.Struct && i > 0 { |  | ||||||
| 			other_values = append(other_values, md) |  | ||||||
| 			mds = append(mds[:i], mds[i+1:]...) |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 	for _, md := range mds { | 	for _, md := range mds { | ||||||
| 		val := reflect.ValueOf(md) | 		val := reflect.ValueOf(md) | ||||||
| 		if val.Kind() == reflect.Slice || val.Kind() == reflect.Array { | 		if val.Kind() == reflect.Slice || val.Kind() == reflect.Array { | ||||||
| @ -80,9 +67,11 @@ func (o *queryM2M) Add(mds ...interface{}) (int64, error) { | |||||||
| 	names := []string{mfi.column, rfi.column} | 	names := []string{mfi.column, rfi.column} | ||||||
| 
 | 
 | ||||||
| 	values := make([]interface{}, 0, len(models)*2) | 	values := make([]interface{}, 0, len(models)*2) | ||||||
|  | 
 | ||||||
| 	for _, md := range models { | 	for _, md := range models { | ||||||
| 
 | 
 | ||||||
| 		ind := reflect.Indirect(reflect.ValueOf(md)) | 		ind := reflect.Indirect(reflect.ValueOf(md)) | ||||||
|  | 
 | ||||||
| 		var v2 interface{} | 		var v2 interface{} | ||||||
| 		if ind.Kind() != reflect.Struct { | 		if ind.Kind() != reflect.Struct { | ||||||
| 			v2 = ind.Interface() | 			v2 = ind.Interface() | ||||||
| @ -92,11 +81,11 @@ func (o *queryM2M) Add(mds ...interface{}) (int64, error) { | |||||||
| 				panic(ErrMissPK) | 				panic(ErrMissPK) | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
|  | 
 | ||||||
| 		values = append(values, v1, v2) | 		values = append(values, v1, v2) | ||||||
| 
 | 
 | ||||||
| 	} | 	} | ||||||
| 	names = append(names, other_names...) | 
 | ||||||
| 	values = append(values, other_values...) |  | ||||||
| 	return dbase.InsertValue(orm.db, mi, true, names, values) | 	return dbase.InsertValue(orm.db, mi, true, names, values) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user