オブジェクトを一覧表示するための汎用テーブルを作成しようとしていdjango_tables
ます。オブジェクトのget_absolute_urls()
onが返されることを除いて、すべてが機能しています。User
/users/<username>/
このURLを作成することはできますが、他のサイトレイアウトと一致しないため、これを行う別の方法を探しています。組み込みの認証やその他の機能を壊さずにこの値を上書きする方法はありますか?
オブジェクトを一覧表示するための汎用テーブルを作成しようとしていdjango_tables
ます。オブジェクトのget_absolute_urls()
onが返されることを除いて、すべてが機能しています。User
/users/<username>/
このURLを作成することはできますが、他のサイトレイアウトと一致しないため、これを行う別の方法を探しています。組み込みの認証やその他の機能を壊さずにこの値を上書きする方法はありますか?
設定を使用してsettings.pyファイルでこれを行うことができますABSOLUTE_URL_OVERRIDES
ABSOLUTE_URL_OVERRIDES = {
'auth.user': lambda u: "/users/%s/" % u.username,
}
公式ドキュメントへのリンクは次のとおりです:https ://docs.djangoproject.com/en/stable/ref/settings/
補足として:
django v1.7以降、はメソッドをdjango.contrib.auth.models.AbstractUser
定義しなくなりました(リリースノートを参照)。get_absolute_url()
get_absolute_url()
したがって、カスタムメソッドを定義する必要があるため、django>v1.7ではOPの問題は発生しません。
これを行うには2つの方法があります。
get_absolute_url()
ユーザーモデル拡張機能でメソッドを定義します。User.get_absolute_url()
て、設定全体を作成(上書きではない)しABSOLUTE_URL_OVERRIDES
ます。