html根据数据库更改按钮状态,如何用Djang在HTML中单击按钮来更改数据库中的数据...

你可以那样做from django.db.models import F

def questions(request)

_reponse = Reponse.objects.update(total=F('total') + 1)

return render(request, 'vautmieux/test.html', {'reponse': _reponse})

如果您想添加一个按钮来增加计数器,那么您需要创建两个单独的视图,一个用于呈现html页面,另一个用于增加integerfield

所以你呢视图.py看起来像这样

^{pr2}$

在您的url中,您将看到:path('question_page/', views.questions, name='question-html'),

path('increase_counter/', views.IncreaseCounter, name='Increase-Counter')

最后,您只需添加一个按钮,将第二个视图作为目标: + 1

理想的方法是使用ajax,这样每次单击按钮时页面都不会刷新,为此,必须更改按钮的onclick函数并添加以下脚本: + 1

$.ajax({

url: '/increase_counter/',

method : 'POST',

success: function(response) {

alert('counter increased')

}

});

但是如果你想使用ajax,你必须在你的视图上添加一个csrf不受限制的装饰器。

为了更新模型中的特定对象,需要将pk作为变量传递到url中,如下所示:path('increase_counter//', views.IncreaseCounter, name='Increase-Counter')

在您的按钮中,您将循环更改按钮,如下所示: + 1

对于aajax来说,将pk添加到url中的方法是相同的。

在您看来,您将添加以下内容:def IncreaseCounter(request, pk):

_reponse = Reponse.objects.filter(pk=pk).update(total=F('total') + 1)

return HttpResponse('the counter has been increased')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值