私は Django 1.4.5 の UserProfiles でここまで来ました。それは機能しますが、ユーザーを作成するときに、管理者のカスタム フィールドに値を追加できるようにしたいと考えています。これが機能する方法として、新しいユーザーを作成してから、戻って UserProfile フィールドを追加する必要があります。
ユーザーの作成時に UserProfile フィールドを追加するには、どこで何をする必要がありますか?
### 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)