Djangoによるフォーム入力後の送信にてCSRF検証に失敗したため、リクエストは中断されました。という403エラーが出る問題を修正。
原因
Djangoのメジャーアップデートのため起こっているようだ。2から4にすればその辺も変更は加えられて当然だろう。
どういう変更がされたかと確認すると、CSRF対策のチェックの時に、httpリクエストのOriginヘッダーの値がDjangoでのCSRF_TRUSTED_ORIGINSのリストに含まれているかどうかチェックするようになったようだ。
下記のDjangoドキュメントのHow it worksの第4項付近に書いてある:

クロスサイトリクエストフォージェリ (CSRF) 対策 | Django ドキュメント
The web framework for perfectionists with deadlines.
OriginヘッダについてはこちらのMDNを参照:
Origin header - HTTP | MDN
The HTTP Origin request header indicates the origin (scheme, hostname, and port) that caused the request.For example, if...
対処
Djangoアプリ側に設定を加える。CSRF_TRUSTED_ORIGINSを加える。settings.pyなどに、
# settings.py, etc
CSRF_TRUSTED_ORIGINS = ["https://a.domain.name"]
https://などスキームから指定する必要があることに注意。Originヘッダを比較することを考えれば自然。
おわり
Djangoももう4か。Djangoのリリースノートについてはここ:

Django 4.0 release notes | Django documentation
The web framework for perfectionists with deadlines.
以上です。


