DjangoはCSRF Cookieにランダムな秘密値を保存します。
フォームに入るトークンは、BREACH攻撃を軽減するため、秘密値をそのまま出力せず、リクエストごとにランダムなマスクを加えた値です。
受信時にはマスクを解除し、Cookie内の秘密値と比較します。
さらに、Djangoは次の検証も行います。
GET、HEAD、OPTIONS、TRACE以外を検査
CSRF Cookieの存在確認
フォームまたはヘッダーのトークン確認
Originヘッダー検証
HTTPSでOriginがない場合の厳格なReferer検証
CSRF_TRUSTED_ORIGINSとの照合
Django公式ドキュメントでは、ログイン時にCSRF秘密値を変更し、フォーム側トークンを毎回異なるマスクで出力する構造が説明されています。