在点击html按钮时调用Django函数

问题描述 投票:0回答:1

我试图创建一个功能,当一个html按钮被点击时,一个配置文件的 "硬币 "会增加10。

以下是我的html

<div class="sideContainer" id="buttonNav">
  <span class="redButton">
    <button type="button" class="btn btn-danger" id="buttonRed" name = "redButton">  <a  href="{% url 'redButton' %}"> Red </a>
 </button>
</span>


</div>

我的看法是

@login_required
def Red(request):
    Profile.coins += 10
    return(request, "home/home.html")

这是我的资料模型

from django.db import models
from django.contrib.auth.models import User


class Profile(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    coins = models.DecimalField(max_digits=9, decimal_places=2, default=0.00)



    def __str__(self):
        # @ts-ignore
        return f'{self.user.username} Profile'

这里是我的urls.py

from django.contrib import admin
from django.urls import path, include

from . import views

urlpatterns = [
    path('redButton/', views.Red, name='redButton'),
]



谢谢!我想创建一个函数,当一个html按钮被点击时,一个配置文件的 "币 "会以10的形式增加。

python html django button view
1个回答
-1
投票

首先,从当前对象中获取配置文件对象。这里,我使用了 get_object_or_404. 然后,增加了 coins 在下一行中,将配置文件的值增加10。然后,更新资料币。

from django.shortcuts import render, get_object_or_404

@login_required
def Red(request):
    profile = get_object_or_404(Profile, user=request.user)
    profile.coins += 10
    profile.save(update_fields=['coins']
    return render(request, "home/home.html")
© www.soinside.com 2019 - 2024. All rights reserved.