我确实知道这是一个常见的话题,但是我已经检查了我能找到的每个解决方案,但它对我不起作用。 我想通过单击按钮添加用户点。
views.py
def add_points(request):
if request.GET.get('mybtn'):
profil = get_object_or_404(Profile, created_by=request.user)
profil.points += 10
profil.save(update_fields=["points"])
return render(request, 'users/profile.html')
models.py
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
image = models.ImageField(default='default.jpg', upload_to="profile_pics")
points = models.PositiveIntegerField(default=0)
people = models.PositiveIntegerField(default=0)
html文件
<div>
<form method="POST">
{% csrf_token %}
<input type="submit" class="btn" value="+10 pkt" name="mybtn"/>
</form>
</div>
我尝试过不同的解决方案,但对我来说真的没有任何效果。
答案 0 :(得分:1)
尝试使用F函数。
from django.db.models import F
def add_points(request):
if request.GET.get('mybtn'):
profil = get_object_or_404(Profile, created_by=request.user)
profil.points = F('points) + 10
profil.save(update_fields=["points"])
return render(request, 'users/profile.html')