自分が作成しているサービスの中にお問い合わせフォームを埋め込みたいときに詰まった部分があったため、同じことをしたい方へ向けてメモを残します。
利用環境について
下記を利用しています。
- 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.py
のMIDDLEWARE
に下記を追加
MIDDLEWARE = [
...
'django_http_referrer_policy.middleware.ReferrerPolicyMiddleware', # 追加
...
]
ステップ3: settings.py
の空きスペースに下記を追加
REFERRER_POLICY = 'no-referrer-when-downgrade'
※referrerの値の種類はこちらが参考になります
これで無事にフォームが指定したページで表示できました🙌