2
我有成員場模型,如下圖所示:如何跟蹤Flask-WTF中的表單字段更改?
class Team(db.Model):
--- some fields ---
members = ListProperty(db.Key) # Using App Engine datastore as backend.
我用的燒瓶WTFforms採用這種模式來創建表單。在創建新的Team時,用戶將選擇表單中的一些成員並保存。用戶還可以編輯團隊表格並更改成員字段(可以添加或刪除成員)。我想通過比較存儲在成員字段中的先前數據來檢查添加或刪除了多少成員。同樣適用於其他領域。
我使用的會話來實現這一目標:
高清edit_team(鍵):
k = db.Key(key)
team = db.get(k)
form = TeamForm(obj = team)
if not form.is_submitted(): # Indicates GET request
session[str(g.user.user_id() + 'prev_members'] = form.members.data
if form.validate_on_submit():
form.populate_obj(project)
# I will use session data with new form.members.data to do further processing.
這是處理這種情況的正確方法? 謝謝你的任何幫助..
感謝您的回答。我的方法與您的方法相同。如果validate_on_submit()爲False,則它被視爲GET請求,並且使用form = TeamForm(obj = team)構造表單,如果validate_on_submit()爲True,則它被視爲POST請求。我想在GET請求中保存表單數據並在POST請求中處理它。我也可以跟蹤發生了什麼變化。 更多關於validate_on_submit():該方法依次調用form.is_submitted()和form.validate()。 is_submitted()方法是區分POST和POST的方法。 – rajpy 2013-05-14 09:41:27