3

私はいくつかの言語を含むウェブサイトを構築しています。

したがって、すべてのモデルクラスのすべての属性の詳細な名前を(internationalizaton-helperを使用して)設定する必要があります。残念ながら、ユーザー属性の詳細な名前を変更する方法が見つかりません...

そして、すべてのフォームを上書きすることは、それを行うための本当に良い方法ではありませんよね?

ご協力いただきありがとうございます!

ロン

4

2 に答える 2

9

それはあなたがこれを何のために必要とするかに依存します。通常、verbose_name管理者のコンテキスト内でのみ使用されます。それが心配する必要がある場合は、プロキシモデルを作成し、ユーザー管理者にそれを使用させることができます。

from django.contrib.auth.models import User
from django.utils.translation import ugettext_lazy as _

class CustomUser(User):
    class Meta:
        proxy = True
        app_label = 'auth'
        verbose_name = _('My Custom User')

次に、admin.pyで:

 from django.contrib.auth.admin import UserAdmin
 from django.contrib.auth.models import User

 from .models import CustomUser

 admin.site.unregister(User)
 admin.site.register(CustomUser, UserAdmin)
于 2012-06-08T15:05:45.227 に答える
3

これは、Googleでdjangoの冗長な名前を検索するときの最初の回答なので、2012年のChrisPrattの回答をdjango2.0に修正すると思いました。

管理パネルでモデル名のみを更新する場合は、ユーザーモデルにメタクラスを追加するだけです。クリスの答えからのわずかな変化に注意してください。

class Meta:
    verbose_name = 'My Custom User'
于 2018-06-13T17:49:22.113 に答える