2010-01-13 3 views
1

Я пытаюсь использовать декоратор проверки в Pylons с помощью FormEncode, и я столкнулся с проблемой. Я пытаюсь проверить форму на действие контроллера, которое требует параметров, и если проверка не выполняется, параметры не передаются обратно при повторной визуализации формы. Вот пример.Pylons FormEncode @validate decorator pass parameters в re-render action

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') 

Это действие контроллера, которое содержит мою форму. Форма добавит вопросы к существующему набору вопросов, который идентифицируется идентификатором. Мои дополнительный вопрос контроллер действия выглядят следующим образом:

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

Теперь, если проверка не FormEncode пытается повторно отобразить форму question_set, но он не передает идентификатор параметра обратно, так что вопрос, заданная форма не будет оказывать. Можно ли передать идентификатор обратно с помощью декоратора @validate, или мне нужно использовать другой метод для достижения того, что я пытаюсь сделать?

ответ

2

Я думаю, проблема в том, что add_question() не принимается id аргумент. Попробуйте настроить свою маршрутизацию так, чтобы add_question() получил ее не только в POST-файлах, но и в качестве аргумента и посмотрел, исправляет ли она проблему.

1

У меня была аналогичная проблема. Я скорректировал свой маршрут, чтобы включить идентификатор, и он сработал.

 Смежные вопросы

  • Нет связанных вопросов^_^