1

FormEncodeを使用してPylonsで検証デコレータを使用しようとしていますが、問題が発生しました。パラメーターを必要とするコントローラーアクションでフォームを検証しようとしていますが、検証が失敗した場合、フォームが再レンダリングされたときにパラメーターが戻されません。これが例です。

def question_set(self, id):
    c.question_set = meta.Session.query(QuestionSet).filter_by(id=id).first()
    c.question_subjects = meta.Session.query(QuestionSubject).order_by(QuestionSubject.name).all()
    return render('/derived/admin/question_set.mako')

これは私のフォームを含むコントローラーアクションです。フォームは、idで識別される既存の質問セットに質問を追加します。質問コントローラーの追加アクションは次のようになります。

@validate(schema=QuestionForm(), form='question_set', post_only=True)
def add_question(self):
    stuff...

これで、検証が失敗した場合、FormEncodeはquestion_setフォームを再表示しようとしますが、idパラメーターが戻されないため、質問セットフォームはレンダリングされません。@validateデコレータを使用してIDを返すことは可能ですか、それとも私がやろうとしていることを達成するために別の方法を使用する必要がありますか?

4

2 に答える 2

2

add_question()問題はそれが議論を受けないことだと思いidます。add_question()POST変数だけでなく、引数としても受け取るようにルーティングを設定して、問題が解決するかどうかを確認してください。

于 2010-01-15T14:54:30.023 に答える
1

同様の問題がありました。IDを含めるようにルートを調整したところ、うまくいきました。

于 2012-01-12T15:36:13.453 に答える