2017-08-12 6 views
0

私は頭をDjangoのコンセプトの周りに入れようとしていますが、私はURLResolver reverse_lazy()と闘っています。私が知る限り、ロードされていないURLに戻す場合は、reverse_lazy()を使用する必要があります。ですから、CBVを作成してsuccess_urlを記述すると、私はreversy_lazyを使用します。これは、ファイルの実行時にURLがインポートされないことを意味します。Reverse_lazyとURL Loading?

私は何かを実行する前にサーバが起動している間にすべてのURLを読み込むと思うので、これは私にとっては紛らわしいものです。では、URLは実行時にどのようにロードされないのでしょうか?

誰かが私にこれに答えてくれればとてもうれしいです。

答えて

1

まず最初に、resolve()またはreverse()への最初の呼び出しが行われたとき(通常は最初の要求時)、URLリゾルバ自体が遅延します。しかし、この場合はそれほど重要ではありません。

URLリゾルバが初期化されると、URL設定がインポートされ、ビューがインポートされます。したがって、ビューがインポートされ、success_urlが設定されている場合、リゾルバは初期化の途中にあります。この時点でreverse()を呼び出すと、リゾルバはまだビュー名を逆転させる情報をすべて持っていないため、機能しません。