0
こんにちは、私は新しいユーザーを追加するときにユーザープロファイルオブジェクトを追加しようとしていますが、「ユーザー」インスタンスには常に多対一の前に主キー値が必要です。多くの関係を使用することができます。エラー。ここで新しいユーザーを追加するときにUser Profileオブジェクトを追加する
私のユーザー・プロファイル・クラスと管理クラスは、以下のとおりです。
class User_Profile(models.Model):
user = models.OneToOneField(User)
country = models.ForeignKey(Country)
phone_number = models.CharField(max_length=16)
class Meta:
db_table = 'user_profile'
unique_together = ('user', 'country')
def __unicode__(self):
return self.user.username
class UserProfileInline(admin.StackedInline):
model = User_Profile
class UserProfileAdmin(UserAdmin):
add_form = AddUserForm
fieldsets = (
(None, {'fields': ('username',)}),
(('Personal info'), {'fields': ('first_name', 'last_name', 'email')}),
(('Permissions'), {'fields': ('is_active', 'is_staff', 'is_superuser')}),
(('Groups'), {'fields': ('groups',)}),
)
add_fieldsets = (
(None, {
'classes': ('wide',),
'fields': ('username', 'email', 'password1', 'password2')}
),
(('Permissions'), {'fields': ('is_active', 'is_staff', 'is_superuser')}),
(('Groups'), {'fields': ('groups',)}),
)
inlines = [UserProfileInline]
def save_model(self, request, obj, form, change):
new_user = request.user
new_user.save()
user_profile = new_user.get_profile()
user_profile.user = new_user
user_profile.country = request.POST['country']
user_profile.country = request.POST['phone_number']
user_profile.save()
wow。そのトリックをした。おかげで 私はsave_modelビット 'デフsave_model(自己、リクエスト、OBJ、フォーム、変化する)を変更する必要が:= OBJ new_user.save new_userを() してみてください。 USER_PROFILE = new_user.get_profile() user_profile.save() を除くUser_Profile.DoesNotExist: user_profile = User_Profile(user = new_user、country = Country.objects.get(pk = request.POST ['user_profile-0-country'])、phone_number = request.POST [ 'user_profile-0-phone_number']) user_profile.save(force_insert = True) ' – fawx