这是我的view.py
from models import Balance
def profile(request):
user = Balance.objects.get(user=request.user)
return render(request,'profile.html',{"balance":user.balance})在这里创建了模型
class Balance(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
balance = models.IntegerField(default=0)
def __str__(self):
return self.user.username这是我的注册,我想我在这里弄错了:
@unauthenticated_user
def register(request):
form = CreateUser()
if request.method == 'POST':
form = CreateUser(request.POST)
if form.is_valid():
form.save()
username = form.cleaned_data.get('username')
instance = Balance(user=request.user, balance=0)
instance.save()
messages.success(request, "Congrats !!" + username + "now you are member of the society")
return redirect('login')
context = {'form': form}
return render(request, "register.html", context)在显示配置文件时,我可以从数据库中获取用户的余额,但在注册时无法将其保存到数据库中。作为erorr返回:
ValueError at /ValueError/无法分配">":"Balance.user“必须是"User”实例
发布于 2021-02-13 09:21:58
当您写这行时,您的用户没有被登录:
instance = Balance(user=request.user, balance=0)我假设您的表单CreateUser工作正常。保存表单时,它返回创建的实例,因此可以使用它而不是request.user。
user = form.save()
instance = Balance(user=user, balance=0)
instance.save()https://stackoverflow.com/questions/66183483
复制相似问题