web-dev-qa-db-ja.com

Django:以前のURLを取得

データベースに追加する前に特定のカテゴリを必要とするPostモデルがあり、そのカテゴリを自動的に生成したいと思っています。 addPostボタンをクリックすると別のページに移動するので、前のページのURLの一部を取得することでカテゴリが決定されます。

前のページのURLを文字列として取得する方法はありますか?

ありがとう

編集:ここにAddPostボタンを追加しました。

<aside class="addPost">
       <article>
            <form action="/Forum/addPost">
                  <input type="submit" name="submit" value="Add Post"/>
            </form>
       </article>
</aside>
14
tryingtolearn

_request.META['HTTP_REFERER']_を使用してこれを行うことができますが、タブの前のページがWebサイトからのものである場合にのみ存在します。それ以外の場合、META dictに_HTTP_REFERER_はありません。したがって、注意して、代わりに.get()表記を使用していることを確認してください。

_# Returns None if user came from another website
request.META.get('HTTP_REFERER')
_

注:Django 1.10が実際のリリースだったときに、この答えを出しました。私はDjangoこれがDjango 2に当てはまるかどうかはわかりません

34
Viktor

request.META.HTTP_REFERERを使用すると、参照URLを取得できます

詳細はこちら: https://docs.djangoproject.com/en/dev/ref/request-response/#Django.http.HttpRequest.META

9
Abid A

@tryingtolearnのコメントには答えられませんが、将来のユーザーはrequest.META['HTTP_REFERER']を使用できます

より信頼できる方法は、[投稿を追加]ボタンのURLでカテゴリを明示的に渡すことです。

2
Daniel Roseman