2

シナリオ:

Userマルチテーブル継承を使用してDjangoのモデルを拡張したいとします。そのために作成したモデルがと呼ばれているとしましょうCustomUser

Userここで、モデルに対応するデータベースに既存のレコードがあり、モデルに対応するテーブルCustomUserがまだ空であると仮定します。

ここで、CustomUserモデルにDjangoの管理アプリからアクセスできるようにします。私が気付いたのは、CustomUserテーブルに対応するレコードがあるユーザーモデルレコードのみが、クエリの舞台裏でINNER JOINが実行されているかのように、CustomUserの変更リストconnection.queriesに含まれていることです...確かに内部結合)。

ここで、この動作を変更して、CustomerUserに関連するレコードを取得するためにLEFTJOINが実行されるようにします。

どうすればDjangoでこれを達成できますか?

どうもありがとうございます!

4

1 に答える 1

2

動作中のadmin.pyに以下を入れてください。

from django.contrib import admin
from django.contrib.auth.admin import UserAdmin
#### below imports your custom user model
from accounts.models import CustomUser   

admin.site.unregister(User)

class UserProfileInline(admin.StackedInline):
    model = CustomUser   

class UserProfileAdmin(UserAdmin):
    inlines = [ UserProfileInline, ]

admin.site.register(User, UserProfileAdmin)

上記はCustomUser、adminのUserにモデルを表示します。これで、UserProfileAdminからユーザーフィールドにアクセスできるようになりましたUser__first_name

于 2012-06-02T07:42:33.147 に答える