コード例 #1
0
ファイル: model_form.go プロジェクト: kiasaki/kauthie
func main() {
	Form := gforms.DefineModelForm(User{}, gforms.NewFields(
		gforms.NewTextField(
			"name",
			gforms.Validators{
				gforms.Required(),
			},
		),
	))
	http.HandleFunc("/new", func(w http.ResponseWriter, r *http.Request) {
		form := Form(r)
		if r.Method != "POST" {
			fmt.Fprintf(w, form.Html())
			return
		}
		if form.IsValid() {
			user := form.GetModel().(User)
			fmt.Fprintf(w, "%v => %v", form.CleanedData, user)
		} else {
			fmt.Println(form.Html())
			fmt.Fprintf(w, "%v", form.Errors())
		}
	})
	http.ListenAndServe(":9000", nil)
}
コード例 #2
0
ファイル: custom_validation.go プロジェクト: kiasaki/kauthie
func main() {
	tpl := template.Must(template.ParseFiles(path.Join(getTemplatePath(), "post_form.html")))
	langForm := gforms.DefineModelForm(Lang{}, gforms.NewFields(
		gforms.NewTextField(
			"name",
			gforms.Validators{
				gforms.Required(),
				CustomValidator{
					Langs: []string{"golang", "python", "c"},
				},
			},
		),
	))

	http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
		w.Header().Set("Content-Type", "text/html")
		form := langForm(r)
		if r.Method != "POST" {
			tpl.Execute(w, form)
			return
		}
		if !form.IsValid() {
			tpl.Execute(w, form)
			return
		}
		lang := form.GetModel().(Lang)
		fmt.Fprintf(w, "ok: %v", lang)
	})
	http.ListenAndServe(":9000", nil)
}