31

オブジェクトを一覧表示するための汎用テーブルを作成しようとしていdjango_tablesます。オブジェクトのget_absolute_urls()onが返されることを除いて、すべてが機能しています。User

/users/<username>/

このURLを作成することはできますが、他のサイトレイアウトと一致しないため、これを行う別の方法を探しています。組み込みの認証やその他の機能を壊さずにこの値を上書きする方法はありますか?

4

2 に答える 2

47

設定を使用してsettings.pyファイルでこれを行うことができますABSOLUTE_URL_OVERRIDES

ABSOLUTE_URL_OVERRIDES = {
    'auth.user': lambda u: "/users/%s/" % u.username,
}

公式ドキュメントへのリンクは次のとおりです:https ://docs.djangoproject.com/en/stable/ref/settings/

于 2010-02-24T19:29:23.703 に答える
0

補足として:

django v1.7以降、はメソッドをdjango.contrib.auth.models.AbstractUser定義しなくなりました(リリースノートを参照)。get_absolute_url()

get_absolute_url()したがって、カスタムメソッドを定義する必要があるため、django>v1.7ではOPの問題は発生しません。

これを行うには2つの方法があります。

  1. get_absolute_url()ユーザーモデル拡張機能でメソッドを定義します。
  2. Mark Lavinの回答の解決策を使用しUser.get_absolute_url()て、設定全体を作成(上書きではない)しABSOLUTE_URL_OVERRIDESます。
于 2019-08-28T18:12:49.243 に答える