如果要在同一个表单上管理 Data 和 OtherData,那么:
- 在管理员中使用用户模型和
- 在 Data 和 OtherData 上添加两个堆栈内联。
- 排除用户的所有文件或将用户名设置为 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。换句话说,如果您在模型中有一对多关系。Inlines 的灵活性令人难以置信。