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

我目前正在进行我的第一个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>

  

牛魔王的故事
浏览 79回答 2
2回答

30秒到达战场

您的模型具有指向您的模型的指针。保存 时,您从未链接到(非空)用户。BudgetInfoForeignKeyUserBudgetInfo如果您希望脚本引用“当前用户”(登录后实际发出请求的用户),则只需使用:request.userBudgetInfo.objects.create(&nbsp; &nbsp; user=request.user,&nbsp; &nbsp; items=name,&nbsp; &nbsp; cost=expense_cost,&nbsp; &nbsp; date_added=expense_date,)如果您要将其链接到“其他用户”,则需要先找到该用户,然后以相同的方式链接它:BudgetInfo.objects.create(&nbsp; &nbsp; user=User.objects.get(username="smassey"), # for example&nbsp; &nbsp; items=name,&nbsp; &nbsp; cost=expense_cost,&nbsp; &nbsp; date_added=expense_date,)

慕的地10843

试试这个&nbsp;<form class="col s12" action='{% url "add item" %}' method='post'>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {% csrf_token %}&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <input type="text" name="id" value="{{user.id}}">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </form>并在您的视图中def additem_view(request):&nbsp; &nbsp;name = request.POST['expense_name']&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;expense_cost = request.POST['cost']&nbsp;&nbsp;&nbsp; &nbsp;expense_date = request.POST['expense_date']&nbsp; &nbsp;id= request.POST['id']create=BudgetInfo.objects.create(id=id,items=name,cost=expense_cost,date_added=expense_date)create.save()return HttpResponseRedirect('app')
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python