2017-11-23 13 views
0

私は特定のデータを編集する編集機能を持っています。フォーム(私はflask_wtfを使用)と同じであるので、私は使用することができます。フラスコform.populate_obj()ヌル値を保持

form.populate_obj(build) 

は今、私はすべての古い値を参照し、それらを編集することができますが、いくつかのフィールドに値を持っていません。これらのフィールドは、DBのnullです。しばしばそれらを編集する必要はないので、私は単にそれらを無視する。ここ

とは問題であり、ここで""

空の文字列になっnullままにしてください、私は編集フォームを提出した場合、すべての値が正確な例です。

私だけ編集したいエントリザッツdate_added。私はbanditsadditional_infoを無視します。

enter image description here

はもちろん、私は全体のコードを書き換えると、私はこれらの値を追加する場所と同じロジックを使用することができます。私はbanditsadditional_infoはまだnullであることを期待して提出し、彼らは変更後 enter image description here

DBが、私はそこに良いソリューションがあるはずだと思う。

答えて

1

あなたのフォームフィールドにフィルタを追加することができます。たとえば

filters = [lambda x: x or None] 

を次のように:

birthtown = StringField("Birthtown", filters = [lambda x: x or None]) 

これはあなたがフィールドまたはなしで書くものは何でもどちらかが使用されます。少なくともあなたは空の文字列を取り除くでしょう。それとも、これは受け入れられるようにあまりにも多くの書き換えですか?

+0

素晴らしい解決策、私はフィルターについて考えていません。ありがとう – Roman

+1

P.S.賞金はまだロックされており、明日受け入れます。 – Roman

関連する問題