formlessのactionのURLがよろしくないとかって話は誰も言わない
通称:寝坊。そんでもって通称:ホームレス。のお話
Nevowはformを作成するformlessってモジュールがいるんだけど。
こいつを使うと簡単にフォーム登録を実装することができる。
こんな感じ。※全部は載ってないよ
from zope.interface import implements from core import root from formless import annotate from formless import iformless from formless import webform class IForm(annotate.TypedInterface): def add(name=annotate.String(required=True)): pass add = annotate.autocallable(add) class ProjectPage(root.BasePage): implements(IForm) addSlash = True contentTemplateFile = 'project.html' def render_form(self, context, data): return webform.renderForms() def add(self, name): print '***** add called with:', name
autocallbackがキモ。
だけどこいつのactionのURLが
/xxxxx/freeform_post!!メソッド名/
みたいになる。
嫌いだなあ。これ。
formを作る際に入力チェックが全て終わった時点で呼ばれるメソッドを指定するんだけど
そいつがURLに書かれているようだ。
そもそもなんで嫌かっていうとRootにdjangoのurlresolver的なものを使ってるからで
意味不明なURLとか来ると変に解釈しちゃうからうまく動かないってだけなんですけどね。
urlresolverはボツだなあ。基本完全一致だからsegmentsに空タプル返してしまうとうまく行かないよう。
URLもDirectory階層でそれに準拠ってルールで行くのが無難。
まあURLの解釈周りがへぼいからあかんのだよ。モダンじゃないよね全く。
あ。でもひとつ言うとホームレスはフォームのテンプレを自分で書けるので某xxxxとかなんかより
自由だと思うよ。
エラーメッセージは・・・・。そのうち書く!
Axiomに行くまでには時間がかかりそう><
うくく。