Data と OtherData を同じフォームで管理する場合は、次のようにします。
- admin で User モデルを使用し、
- Data と OtherData に 2 つのスタック インラインを追加します。
- ユーザーのすべてのファイルを除外するか、参照用にユーザー名を read_only にします
- 私の知る限り、一度だけ登録できるため、おそらく User モデルの登録を解除してから再度登録する必要があります。
これがサンプルコードです
from django.contrib.admin import StackedInline
from django.contrib.auth.models import User
from models import Data, OtherData
class DataInline(StackedInline):
model = Data
#form = you can customize your form
#max_number = define the number of inlines
class OtherDataInline(StackedInline):
model = OtherData
class UserAdmin(admin.ModelAdmin):
inlines = (DataInline, OtherDataInline,)
fields = ('username',)
readonly_fields = ('username',)
#the user can be regitered just once in the admin
admin.site.unregister(User)
admin.site.register(User, UserAdmin)
ユーザーが複数の Data または OtherData を持っている場合は、TabularInline を試すことができます。つまり、モデルに一対多の関係がある場合です。インラインの柔軟性は信じられないほどです。