1
2

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 3 years have passed since last update.

お問い合わせフォーム(iframe)をDjangoで利用する

Posted at

自分が作成しているサービスの中にお問い合わせフォームを埋め込みたいときに詰まった部分があったため、同じことをしたい方へ向けてメモを残します。

利用環境について

下記を利用しています。

  • Django 3.1.3
  • Python 3.9.0

フォーム作成サービスについて

簡単にセキュアなフォームが作成できて便利でした(フォーム作成は一つまで無料でできます)

事前準備

  • サイトのSSL化を完了させておく(httpsでアクセスできる状態にする)

詰まったこと

  • SSL化しても、フォームが指定したページに埋め込まれない

formrunのQ&Aを参考に、hogehogeを自分のフォーム名にしたら埋め込まれるものだと思ってhtml内に下記を記載していたもののうまく反映されなかった

<script src="https://sdk.form.run/js/v2/embed.js"></script>
<div
  class="formrun-embed"
  data-formrun-form="@hogehoge"
  data-formrun-redirect="true">
</div>

解決方法

ステップ1: django-http-referrer-policy をインストールする

コマンドは下記
pip install django-http-referrer-policy

ステップ2: settings.pyMIDDLEWAREに下記を追加

MIDDLEWARE = [
    ...
    'django_http_referrer_policy.middleware.ReferrerPolicyMiddleware',  # 追加
    ...
]

ステップ3: settings.pyの空きスペースに下記を追加

REFERRER_POLICY = 'no-referrer-when-downgrade'

※referrerの値の種類はこちらが参考になります

これで無事にフォームが指定したページで表示できました🙌

参考サイト

1
2
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
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?