LoginSignup
0
1

【Wagtail】 Formsのデータをモデル別でフィルタする

Posted at

Form builderを使うと、お問わせフォームなどが管理画面で入力項目のフィールドの内容や数を、
自由に追加・編集・削除することができる。

このフォームから送信されたデータは、管理画面の"Forms"というメニューが追加され、
ここでフォームごとに一覧でデータを見ることができる。

このデータを、自作のテンプレートで特定のフォームに絞り表示したいということがあったのでやり方をメモする。

フォームに投稿されたデータを扱うには、FormSubmissionを使用する。

moedls.py
#フォームに投稿されたデータの取得
from wagtail.contrib.forms.models import FormSubmission

また、データはこのようにすれば取得できる。

moedls.py
from wagtail.contrib.forms.models import FormSubmission

    ///省略///
    
    submissions = FormSubmission.objects.all()
    
    ////省略///
    

ただし、これでは全てのデータが取得される。
フォームごとに抽出するには、slugをフィルタ条件にして絞り込む。
slugとは、ページにアクセスするときのパラメータで、管理画面でprometeという入力項目である。

moedls.py
    submissions = FormSubmission.objects.filter(page_id=FormPage.objects.get(slug='prometeの入力内容').id)
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1