首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何注册这个离线钱包注册?

如何注册这个离线钱包注册?
EN

Stack Overflow用户
提问于 2021-02-13 09:11:24
回答 1查看 121关注 0票数 1

这是我的view.py

代码语言:javascript
复制
from models import Balance
def profile(request):
    user = Balance.objects.get(user=request.user)
    return render(request,'profile.html',{"balance":user.balance})

在这里创建了模型

代码语言:javascript
复制
class Balance(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    balance = models.IntegerField(default=0)

    def __str__(self):
        return self.user.username

这是我的注册,我想我在这里弄错了:

代码语言:javascript
复制
@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”实例

EN

回答 1

Stack Overflow用户

发布于 2021-02-13 09:21:58

当您写这行时,您的用户没有被登录:

代码语言:javascript
复制
instance = Balance(user=request.user, balance=0)

我假设您的表单CreateUser工作正常。保存表单时,它返回创建的实例,因此可以使用它而不是request.user

代码语言:javascript
复制
user = form.save()
instance = Balance(user=user, balance=0)
instance.save()
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66183483

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档