为了账号安全,请及时绑定邮箱和手机立即绑定

在 django 中保存用户特定的数据

在 django 中保存用户特定的数据

牛魔王的故事 2022-08-16 10:25:54
我目前正在进行我的第一个django项目,授权人员可以节省他们的日常开支。我已使用 和 创建了登录和注册页面。我的代码是:UserCeationFormAuthenticationForm  def login_view(request):    if request.method == 'POST':        form= AuthenticationForm(data=request.POST)        if form.is_valid():            user=form.get_user()            login(request,user)            return render (request, 'tasks_notes/index.html')    else:         form= AuthenticationForm()    return render(request, 'registeration/login.html', {'form':form})   def signup_view(request):    if request.method == 'POST':        form= UserCreationForm(request.POST)        if form.is_valid():            user=form.save()            login(request,user)            return redirect('login')    else:         form=UserCreationForm()    return render(request, 'tasks_notes/signup.html',{'form':form})我创建了一个名为“我提供输入”的页面,以保存我的日常费用,供适当的(登录)用户使用:index.html <form class="col s12" action='{% url "add item" %}' method='post'>                    {% csrf_token %}                    <div class="row">                        <div class="container center">                            <h3 class='center'>Your total budget is: <span style="color:green;">{{ budget }}</span> dollars</h3>                            <h3 class='center'>You've spent a total of: <span style="color:red;">{{ expenses }}</span> dollars</h3>                            <br>                            <br>                            <div class="input-field col s3">                                <input placeholder="Expense name" name="expense_name" id='expense_name' type='text' class='validate'>                                <label for='expense_name'>Expense name</label>                            </div>                            <div class="input-field col s3">                                <input placeholder='Amount' name='cost' id='cost' type='text' class='validate'>                                <label for='cost'>Amount</label>                            </div>  
查看完整描述

2 回答

?
30秒到达战场

TA贡献1828条经验 获得超6个赞

您的模型具有指向您的模型的指针。保存 时,您从未链接到(非空)用户。BudgetInfoForeignKeyUserBudgetInfo


如果您希望脚本引用“当前用户”(登录后实际发出请求的用户),则只需使用:request.user


BudgetInfo.objects.create(

    user=request.user,

    items=name,

    cost=expense_cost,

    date_added=expense_date,

)

如果您要将其链接到“其他用户”,则需要先找到该用户,然后以相同的方式链接它:


BudgetInfo.objects.create(

    user=User.objects.get(username="smassey"), # for example

    items=name,

    cost=expense_cost,

    date_added=expense_date,

)


查看完整回答
反对 回复 2022-08-16
?
慕的地10843

TA贡献1785条经验 获得超8个赞

试试这个


 <form class="col s12" action='{% url "add item" %}' method='post'>

                    {% csrf_token %}

                    <input type="text" name="id" value="{{user.id}}">

                </form>

并在您的视图中


def additem_view(request):

   name = request.POST['expense_name']    

   expense_cost = request.POST['cost']  

   expense_date = request.POST['expense_date']

   id= request.POST['id']


create=BudgetInfo.objects.create(id=id,items=name,cost=expense_cost,date_added=expense_date)

create.save()

return HttpResponseRedirect('app')


查看完整回答
反对 回复 2022-08-16
  • 2 回答
  • 0 关注
  • 58 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号