func (c *Comments) Post() { if !c.IsAjax() { return } var v M.ValidMap var cm M.Comment var err error cr := tplComment{Msg: T("internal")} c.Data["json"] = &cr id, err := strconv.Atoi(c.Ctx.Input.Param(":id")) if err == nil { err = c.ParseForm(&cm) } if err != nil { beego.Error(err) return } i := c.GetSession("uid") if i == nil { cr.Msg = T("auth_is_off") return } cm.User = i.(int) //comment author cm.Cand = id //candidate Id cm.Comment = html.EscapeString(cm.Comment) v, err = DM.Insert(&cm, "User", "Cand", "Comment") if err != nil { beego.Error(err) return } if !v.HasErrors() { //if no has errors returns inserted data to client cr.Id = cm.Id cr.Msg = "Ok" cr.Comment = cm.Comment cr.SetAuthor(cm.User) cr.SetDate(cm.CreatedAt) return } M.ExpandFormErrors(&v, c.Data) if val, ok := c.Data["errComment"]; ok { cr.Msg = val.(string) //return error by field comment } }