Изменение значения поля модели после нажатия кнопки

Я действительно знаю, что это общая тема, но я уже проверил каждое решение, которое мог найти, и это не сработало для меня. Я бы хотел добавить пользовательские точки, нажав кнопку.

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 ответ


Попробуйте функцию 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')

Есть идеи?

10000