我在Django应用程序中有一个用户注册表单,当用户尝试注册时,它会收集额外的数据,例如地址、城市、国家、电话号码等。
通过post_save
信号,这些数据保存在Account模型类中。用户创建过程大致如下:
# Function to Create user Account/Profile
def create_user_account(sender, instance, created, **kwargs):
if created:
models.Account.objects.create(user=instance)
# Create User / User Registration
def UserRegistration(request):
if request.method == 'POST':
username = request.POST['fn'].capitalize() + ' ' + request.POST['ln'].capitalize()
# CREATE USER
newuser = User.objects.create_user(username=username, email=request.POST['email'], password=request.POST['pw'])
newuser.first_name = request.POST['fn'].capitalize()
newuser.last_name = request.POST['ln'].capitalize()
newuser.save()
return HttpResponse(username)
#Post Save handler to create user Account/Profile
post_save.connect(create_user_account, sender=User)
当用户提交表单时,会调用UserRegistration
函数,在该函数内可以获取POST数据,我的目标是将这些数据传递给create_user_account
方法,以便填充Account
模型中的字段。
目前,我确实在数据库中看到了创建的Account
对象,但除了用户字段之外,所有字段都为空。显然,因为POST变量没有被传递到create_user_account
方法。
create_user_account
函数中访问它。或者我错过了什么? - arie