diff --git a/utils/editform/editform.go b/utils/editform/editform.go index eacafc7a..82f8f6da 100644 --- a/utils/editform/editform.go +++ b/utils/editform/editform.go @@ -96,14 +96,21 @@ func RenderObject(b *bytes.Buffer, obj interface{}, idPrefix string) { // RenderField ... func RenderField(b *bytes.Buffer, v *reflect.Value, field reflect.StructField, idPrefix string) { - if field.Anonymous || field.Tag.Get("editable") != "true" { + fieldValue := reflect.Indirect(v.FieldByName(field.Name)) + + // Embedded fields + if field.Anonymous { + RenderObject(b, fieldValue.Interface(), idPrefix) + return + } + + if field.Tag.Get("editable") != "true" { return } b.WriteString("
") defer b.WriteString("
") - fieldValue := reflect.Indirect(v.FieldByName(field.Name)) fieldType := field.Type.String() // String