I. XadminによるUsersAdmin登録情報の変更
XadminのデフォルトはUsersモジュールの登録ですが、表示内容や新規ユーザの必須フィールドが表示されないことがあります。ここでは、UserAdminの表示内容をカスタマイズする2つの方法を紹介します。
- オンラインドキュメントによると、admin.pyでカスタムUserAdmin、カスタム表示フィールドなどを作成し、unregisterを実行した後、カスタムUserAdminを登録すると、コードは次のようになります。
import xadmin
from django.contrib.auth import get_user_model #このメソッドは、ユーザーモデルを見つけるのに役立つ
#
class UserAdmin2(object):
list_display = ("username", "name", "workid", 'user_type','date_joined','last_login')
# 表示、検索、フィルターなど、その他のフィールドをカスタマイズする。
)
# 登録手続きを実行する
xadmin.site.unregister(get_user_model())
xadmin.site.register(get_user_model(),UserAdmin2)
xadminコードの変更
xadmin => plugins => auth.pyUserAdminモジュールの変更のxadmin種類を見つけ、パス:約61行は、UserAdminモジュールを見つけるには、コンテンツをカスタマイズすることができます。
私は最初の方法を使用すると、ユーザーが未登録のバグを報告されている、長い時間を取得しますが、良いではありませんが、最終的に2番目の方法を使用します。
次に、新規ユーザーページにカスタムフィールドを追加します。
Users Model 内の私のプロジェクトは django の AbstractUser を継承し、フィールドのいくつかをカスタマイズしているため、フィールドのいくつかは必須であり、xadmin のデフォルトの追加ユーザインタフェースは username, password1, password2 のみであり、その結果、私の新規ユーザはエラーになりました。
xadmin => plugins => auth.py self.form = UserCreationFormxadminのUserAdminモジュールを見つけて、パス: 、81行目あたりを見つけて、UserCreateFormモジュールに行って、カスタムフィールドを追加することができます、私は2つの必須フィールドを追加しました。
name = forms.CharField(
# 長さを制限する
max_length=30,
# 名前を表示する
label=' ',
# 表示するメモ
help_text='名前を入力する'
)
workid = forms.CharField(
# 長さを制限する
max_length=30,
# 名前を表示する
label=' ',
# 表示するメモ
help_text='ジョブ番号を入力する'
)
# カスタムフィールドを追加したら、上で追加したフィールドをMetaのフィールドに追加する。
class Meta:
...
fields = ("username","name","workid")
...
フィールドを追加したら、もう一度新規UIを開くと、追加されたフィールドが表示されます。
第三に、データテーブルのチャートを追加します。
データシート・ページにグラフィカルな表を表示したい場合は、モデル OptionClass 定義に以下のフィールドを追加します。
class RecordAdmin(object):
data_charts = {
"user_count": {'title': u"User Report", "x-field": "date", "y-field": ("user_count", "view_count"), "order": ('date',)},
"avg_count": {'title': u"Avg Report", "x-field": "date", "y-field": ('avg_count',), "order": ('date',)}
}
# チャートの主なプロパティは以下の通りである。:
# ``title`` : チャートの表示名
# ``x-field`` : チャートのX軸データ列、通常は日付、時刻など。
# ``y-field`` : チャートのY軸データ列、この項目はリストであり、同時に複数の列を設定することができ、複数の列のデータが同じチャートに表示される。
# ``order`` : 情報の並べ替え、もし書かなければ、データリストの並べ替えを使うことができる。
これは、基本的なデータ・グラフを表示するだけの簡単なグラフ表です。
つ目は、データを追加する際に、フィールドのデフォルト値を追加することです。
データを追加する際に、データ追加者フィールドがあり、毎回ユーザーを選択する必要があり、非常に面倒なので、ModelAdminのsave_modelsメソッドを再定義して、フィールドにデフォルト値を追加することができます。
class DataAdmin(object):
...
def save_models(self):
obj = self.new_obj
request = self.request
# フィールドのデフォルト値を現在ログインしているユーザーに設定する。
obj.user = request.user.name
obj.save()
このように、データを追加するときは、ユーザーを入力する必要があり、デフォルトは、現在のログインユーザー名になります、非常に便利な、同様に、あなたのニーズを満たすために、他の組み込みメソッドを書き換えることができます。





