单击按钮后更改模型字段值

时间:2018-11-05 00:26:12

标签: python django django-models django-templates django-views

我确实知道这是一个常见的话题,但是我已经检查了我能找到的每个解决方案,但它对我不起作用。 我想通过单击按钮添加用户点。

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>

我尝试过不同的解决方案,但对我来说真的没有任何效果。

1 个答案:

答案 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')