Python 如何在Django admin中预填充UserProfile字段?
如果使用以下命令,则在管理中预填充大多数模型字段(用于生成slug)似乎很简单:Python 如何在Django admin中预填充UserProfile字段?,python,django,django-models,django-admin,Python,Django,Django Models,Django Admin,如果使用以下命令,则在管理中预填充大多数模型字段(用于生成slug)似乎很简单: prepopulated_fields = {"slug": ("name",)} 但是,当我使用下面的代码尝试预填充UserProfile字段时,它会给出此错误消息,即使我在UserProfile模型中显然有一个slug。(只是找错了型号,我不知道如何修复…) 错误: 在/admin/ “UserProfileAdmin.prepopulated_fields”指的是模型“User”中缺少的字段“slug”
prepopulated_fields = {"slug": ("name",)}
但是,当我使用下面的代码尝试预填充UserProfile字段时,它会给出此错误消息,即使我在UserProfile模型中显然有一个slug。(只是找错了型号,我不知道如何修复…)
错误:
在/admin/“UserProfileAdmin.prepopulated_fields”指的是模型“User”中缺少的字段“slug” 在settings.py中:
AUTH_PROFILE_MODULE = 'myapp.UserProfile'
在models.py中:
class UserProfile(models.Model):
user = models.OneToOneField(User)
slug = models.SlugField(max_length=50)
在admin.py中:
class UserProfileInline(admin.StackedInline):
model = UserProfile
max_num = 1
can_delete = False
class UserProfileAdmin(admin.ModelAdmin):
inlines = [UserProfileInline]
prepopulated_fields = {"slug": ("name",)}
admin.site.unregister(User)
admin.site.register(User, UserProfileAdmin)
有人能在这里找出错误的原因吗?
slug
是UserProfile
中的一个字段,但是预填充的_字段={“slug:(“name”,)}
是用户档案管理员的一个属性,应用于用户
prepopulated_fields
触发一些javascript,该javascript会从同一模型的其他一些字段的值中自动生成SlugField的值。您尝试的是预填充不同模型的字段。UserProfileAdmin
应用于用户
,预填充的_字段
指的是模型用户
未知的段塞
。它在UserProfile
中定义
这就是为什么我认为这里最大的问题是名称UserProfileAdmin
,它应该是UserAdmin
。不要混淆应用了预填充_字段的模型与内联的模型。即使存在OneToOne关系,它仍然是一个不同的模型。slug字段在UserProfile中,name字段在User中。即使我为每个模型创建或重命名管理类,也无法解决我试图将预填充字段基于不同模型的问题。我收到错误消息:“UserAdmin.prepopulated_fields”指的是模型“User”中缺少的字段“slug”。