django - 如何从模板单击按钮时在 django 上增加 IntegerField?
问题描述
如何从模板单击按钮时在 django 上增加 IntegerField?我在模板上有两个按钮,一个用于喜欢,另一个用于不喜欢。我对它们都使用不同的帖子请求,但喜欢和不喜欢没有增加。我希望信息是完整的。
这是models.py代码
class Post(models.Model):
Title=models.CharField(max_length=50)
slug = models.SlugField(unique=True,null=True,blank=True)
Meta_Tags = models.CharField(max_length=200,null=True)
Description=models.TextField()
Category=models.CharField(max_length=50)
Body=RichTextUploadingField()
Date=models.DateField(auto_now_add=True)
Views=models.IntegerField(default=0,null=True)
Likes=models.IntegerField(default=0,null=True)
Dis_Likes=models.IntegerField(default=0,null=True)
def __str__(self):
return self.Title + " | " + str(self.Date)
这是 view.py 代码
def blogdetail(request,slug):
post=Post.objects.get(slug=slug)
post.Views +=1
if request.POST.get('Like'):
post.Likes +=1
if request.POST.get('DisLike'):
post.Dis_Likes +=1
post.save()
context={
'post':post
}
return render(request,'blogdetail.html',context)
模板代码在这里
<div class="submit-reaction p-3 mb-5">
<span class="p-x3 mb-5" style="float:left">
<form action="" method="post">
{% csrf_token %}
<button type="submit" name="Like"style="border:none;background:none;"><i
class="far fa-3x fa-thumbs-up text-secondary"></i></button>
</form>
</span>
<span class="p-x3 mb-5" style="float:right">
<form action="" method="post">
{% csrf_token %}
<button type="submit" name="DisLike"style="border:none;background:none;">
<i class="far fa-3x fa-thumbs-down text-secondary"></i></button>
</form>
</span>
</div>
解决方案
使用F()
表达式
from django.db.models import F
reporter = Reporters.objects.get(name='Tintin')
reporter.stories_filed = F('stories_filed') + 1
reporter.save()
看:
https://docs.djangoproject.com/en/3.2/ref/models/expressions/#f-expressions
推荐阅读
- git - 在 ubuntu 中安装期间找不到包 git
- xml - 使用 XSLT 生成特定元素的 XPath
- angular - 有什么方法可以从指令中监听插值变化?
- python - 如何绘制由训练有素的 kNN 决定的决策边界?
- javascript - 如何从二维数组中获取唯一值,同时删除包含另一个数组中元素的重复项
- c# - 如何简化 lambda 表达式中的多个空检查
- asp.net-core - 在常规 MVC 视图表中,呈现多个 Blazor 组件会触发与服务器的断开连接
- python - selenium python中的send()函数不起作用
- reactjs - 在钩子中使用异步数据初始化 useReducer
- css - 如何在 Visual Studio 2019 中将左侧垂直边栏添加到 .Net Core Web 应用程序的默认模板