22d2de9f by slene

orm fix 1. support Limit when use QuerySeter.One 2. return Local time

1 parent 6064a7ab
...@@ -497,15 +497,15 @@ func (d *dbBase) ReadBatch(q dbQuerier, qs *querySet, mi *modelInfo, cond *Condi ...@@ -497,15 +497,15 @@ func (d *dbBase) ReadBatch(q dbQuerier, qs *querySet, mi *modelInfo, cond *Condi
497 } 497 }
498 498
499 if errTyp { 499 if errTyp {
500 panic(fmt.Sprintf("wrong object type `%s` for rows scan, need *[]*%s or *%s", ind.Type(), mi.fullName, mi.fullName)) 500 if one {
501 panic(fmt.Sprintf("wrong object type `%s` for rows scan, need *%s", val.Type(), mi.fullName))
502 } else {
503 panic(fmt.Sprintf("wrong object type `%s` for rows scan, need *[]*%s or *[]%s", val.Type(), mi.fullName, mi.fullName))
504 }
501 } 505 }
502 506
503 rlimit := qs.limit 507 rlimit := qs.limit
504 offset := qs.offset 508 offset := qs.offset
505 if one {
506 rlimit = 0
507 offset = 0
508 }
509 509
510 Q := d.ins.TableQuote() 510 Q := d.ins.TableQuote()
511 511
...@@ -704,7 +704,7 @@ func (d *dbBase) setColsValues(mi *modelInfo, ind *reflect.Value, cols []string, ...@@ -704,7 +704,7 @@ func (d *dbBase) setColsValues(mi *modelInfo, ind *reflect.Value, cols []string,
704 panic(fmt.Sprintf("Raw value: `%v` %s", val, err.Error())) 704 panic(fmt.Sprintf("Raw value: `%v` %s", val, err.Error()))
705 } 705 }
706 706
707 _, err = d.setFieldValue(fi, value, &field) 707 _, err = d.setFieldValue(fi, value, field)
708 708
709 if err != nil { 709 if err != nil {
710 panic(fmt.Sprintf("Raw value: `%v` %s", val, err.Error())) 710 panic(fmt.Sprintf("Raw value: `%v` %s", val, err.Error()))
...@@ -786,6 +786,7 @@ setValue: ...@@ -786,6 +786,7 @@ setValue:
786 s = s[:19] 786 s = s[:19]
787 } 787 }
788 t, err = time.ParseInLocation(format_DateTime, s, tz) 788 t, err = time.ParseInLocation(format_DateTime, s, tz)
789 t = t.In(DefaultTimeLoc)
789 } 790 }
790 if err != nil && s != "0000-00-00" && s != "0000-00-00 00:00:00" { 791 if err != nil && s != "0000-00-00" && s != "0000-00-00 00:00:00" {
791 tErr = err 792 tErr = err
...@@ -864,7 +865,7 @@ end: ...@@ -864,7 +865,7 @@ end:
864 865
865 } 866 }
866 867
867 func (d *dbBase) setFieldValue(fi *fieldInfo, value interface{}, field *reflect.Value) (interface{}, error) { 868 func (d *dbBase) setFieldValue(fi *fieldInfo, value interface{}, field reflect.Value) (interface{}, error) {
868 869
869 fieldType := fi.fieldType 870 fieldType := fi.fieldType
870 isNative := fi.isFielder == false 871 isNative := fi.isFielder == false
...@@ -921,7 +922,7 @@ setValue: ...@@ -921,7 +922,7 @@ setValue:
921 mf := reflect.New(fi.relModelInfo.addrField.Elem().Type()) 922 mf := reflect.New(fi.relModelInfo.addrField.Elem().Type())
922 field.Set(mf) 923 field.Set(mf)
923 f := mf.Elem().Field(fi.relModelInfo.fields.pk.fieldIndex) 924 f := mf.Elem().Field(fi.relModelInfo.fields.pk.fieldIndex)
924 field = &f 925 field = f
925 goto setValue 926 goto setValue
926 } 927 }
927 } 928 }
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!