Django - 在创建用户时对配置文件执行操作
Django - perform action on Profile while creating User
我正在为我的问题寻找解决方案 here,但它并没有解决我的问题。
我想在用户注册时创建用户个人资料。
要注册,我使用 CreateView
class UserRegisterView(generic.CreateView):
form_class = SignUpForm
template_name = 'registration/register.html'
success_url = reverse_lazy('login')
#this method doesn't work and I get
# `Profile.user" must be a "User" instance`
def form_valid(self,form):
Profile.objects.create(user=self.request.user)
我的个人资料模型如下:
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
#rest of fields like bio, social urls etc
我的主要观点是在用户创建帐户时自动创建用户个人资料。
解决此问题的最佳方法是什么?
我会建议避免使用信号,因为你有一个表单。
self.request.user 仅当用户使用任何形式的身份验证(会话、令牌等)登录时才会 return 用户对象
def form_valid(self,form):
user = form.save()
Profile.objects.create(user=user)
return super(UserRegisterView, self).form_valid(form)
我正在为我的问题寻找解决方案 here,但它并没有解决我的问题。
我想在用户注册时创建用户个人资料。
要注册,我使用 CreateView
class UserRegisterView(generic.CreateView):
form_class = SignUpForm
template_name = 'registration/register.html'
success_url = reverse_lazy('login')
#this method doesn't work and I get
# `Profile.user" must be a "User" instance`
def form_valid(self,form):
Profile.objects.create(user=self.request.user)
我的个人资料模型如下:
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
#rest of fields like bio, social urls etc
我的主要观点是在用户创建帐户时自动创建用户个人资料。 解决此问题的最佳方法是什么?
我会建议避免使用信号,因为你有一个表单。
self.request.user 仅当用户使用任何形式的身份验证(会话、令牌等)登录时才会 return 用户对象
def form_valid(self,form):
user = form.save()
Profile.objects.create(user=user)
return super(UserRegisterView, self).form_valid(form)