0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Wagtail 【エラー】Formsの機能でお問合せフォーム作成がうまくいかなかった話

Posted at

wagtailで、公式のチュートリアルを参考にお問合せフォームを実装しようとしていたが
公式にコード通りに書く(コピーしても)とエラー出てしまいハマってしまったので解決法をメモしておおきます。

こちらが参考にした公式のサイト
https://docs.wagtail.org/en/latest/tutorial/create_contact_page.html

エラー症状

チュートリアル通りに進めると、管理画面のページ追加するメニューに"Form Page"という項目が追加されます。
フォr.png

ここまでは順調ですが、この"Form Page"をクリックすると画面のようなエラーになります。
erroe.png

エラーで"ValueError at /admin/pages/add/base/formpage/3/"や
"Model instances passed to related filters must be saved."などが表示されていますが
ググっても合致する情報が見当たらずなんのエラーかは不明でした。
しかし、エラーを解消する方法は見つけました。

結論:解決方法

公式のコードのmodels.pyの"FormSubmissionsPanel()"の部分を消すと直ります。
s.png

正直なぜこれで直るかは分かりません。
ただ公式のコードを見ていても"FormSubmissionsPanel()"がインポートされていないことに気付きました。
ひょっとしたら、インポートされてないものを使おうとしてエラーになったのかもしれません。

models.py
from django.db import models

# import parentalKey:
from modelcluster.fields import ParentalKey

# import FieldRowPanel and InlinePanel:
from wagtail.admin.panels import (
    FieldPanel,
    FieldRowPanel,
    InlinePanel,
    MultiFieldPanel,
    PublishingPanel,
)

from wagtail.fields import RichTextField
from wagtail.models import (
    DraftStateMixin,
    PreviewableMixin,
    RevisionMixin,
    TranslatableMixin,
)

# import AbstractEmailForm and AbstractFormField:
from wagtail.contrib.forms.models import AbstractEmailForm, AbstractFormField

# import FormSubmissionsPanel:
from wagtail.contrib.forms.panels import FormSubmissionsPanel
from wagtail.contrib.settings.models import (
    BaseGenericSetting,
    register_setting,
)
from wagtail.snippets.models import register_snippet


#・・・・・・・以下省略

ともかく、"FormSubmissionsPanel()"を消すと今度は"Form Page"をクリックするとフォーム編集の画面が表示されます。

名称未for定.png
ついでに、公式のチュートリアルは管理画面のスクショや操作方法について全く記載がなかったのでここで紹介します。
画像のような画面で、フォームの内容(例えば名前、メールアドレス、問い合わせ内容など)を自分で好きに追加できます。
inout,textarea,selectなど入力形式も設定できるようです。
名称未設定772.png
最後にpublishして画面を表示するとこのようになります。
名称未あああ設定2.png
試しに何か入力して送信してみましょう。
ここで送信した内容が、管理画面のサイドバーのFormsを押すと、作成したフォームが表示されるので
それを選択すると送信内容が表示されます。
名称未設定っs3.png

以上で、エラー解決して動作確認まで出来ました。

備考

ちなみに、公式のドキュメントで"FormSubmissionsPanel()"を探してみると
英語ですがおおよそ編集インターフェースに読み取り専用の制限をかける旨が記載してありました。
https://docs.wagtail.org/en/stable/reference/pages/panels.html
名称未z設定.png

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?