Python 创建用户配置文件时添加用户配置文件字段值
我在Django 1.4.5上的用户配置文件中已经做到了这一点。它可以工作,但现在我希望能够在创建用户时在管理中为我的自定义字段添加一个值。按照这种方式,我需要创建新用户,然后返回并添加UserProfile字段 在用户创建时,我需要在何处以及如何添加UserProfile字段Python 创建用户配置文件时添加用户配置文件字段值,python,django,Python,Django,我在Django 1.4.5上的用户配置文件中已经做到了这一点。它可以工作,但现在我希望能够在创建用户时在管理中为我的自定义字段添加一个值。按照这种方式,我需要创建新用户,然后返回并添加UserProfile字段 在用户创建时,我需要在何处以及如何添加UserProfile字段 ### admin.py class UserProfileInline(admin.StackedInline): model = UserProfile can_delete = False
### admin.py
class UserProfileInline(admin.StackedInline):
model = UserProfile
can_delete = False
verbose_name_plural = 'profile'
# Define a new User admin
class UserAdmin(UserAdmin):
inlines = (UserProfileInline, )
# Something here?
# Re-register UserAdmin
admin.site.unregister(User)
admin.site.register(User, UserAdmin)
### models.py
class UserProfile(models.Model):
"""Create additional fields for users.
Site ID
"""
# This field is required
user = models.OneToOneField(User)
# Additional fields to add.
site_id = models.IntegerField(null=True, blank=True, verbose_name='Site ID')
def create_user_profile(sender, instance, created, **kwargs):
if created:
UserProfile.objects.create(user=instance)
# Or maybe here?
post_save.connect(create_user_profile, sender=User)
事实证明我确实遇到了这个问题。这篇文章解决了这个问题
您的post_保存信号正确。它应该在创建用户对象时创建概要文件。您面临的问题是什么?上面为新创建的用户创建了一个空的UserProfile。我想在用户创建期间填充站点ID。尝试上述操作会产生“当前事务被中止,在事务块结束之前忽略命令”错误。当然,很有可能我认为Django是我的问题,我找错了方向。你可以做
userprofile=userprofile.objects.create(user=instance);userprofile.site_id=id;userprofile.save()
如何获取在admin中用户表单的Site ID字段中输入的号码,以便将其保存到userprofile?它不是生成的任何类型的ID,而是由用户的创建者输入的数字?