我试图创建一个功能,当一个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的形式增加。
首先,从当前对象中获取配置文件对象。这里,我使用了 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")