【问题标题】:Calling a Django Function upon an html button click单击 html 按钮时调用 Django 函数
【发布时间】:2020-08-29 03:31:00
【问题描述】:

我正在尝试创建一个函数,当单击 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'),
]



谢谢!

【问题讨论】:

    标签: python html django button view


    【解决方案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")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-04
      • 1970-01-01
      • 2013-02-26
      • 2012-08-11
      • 1970-01-01
      • 2016-12-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多