Я пытался реализовать вид обновления, который добавляет +1 к определенному целочисленному полю. В функции просмотра возникает неопознанная ошибка - PullRequest
0 голосов
/ 24 мая 2019

Я пытался реализовать представление обновления, которое добавляет +1 к определенному целочисленному полю.

В функции представления возникает ошибка, не вызывающая изменений.

ошибка

NameError: name 'grade' is not defined

кнопка

<a class="btn btn-outline-primary" href="{% url "bestlec:request_grade_plus" p.pk %}"> recommandation </a>

шаблон URL

    path('<int:id>/grade_plus/', views.grade_plus, name="request_grade_plus"),

модель

class Best20(models.Model):
    title = models.CharField(max_length=50)
    description = models.TextField(blank=True)
    url_lec = models.CharField(max_length= 60)
    author = models.ForeignKey(User, on_delete=True)
    # grade = models.CharField(max_length= 30)
    grade = models.IntegerField()

вид

    def grade_plus (request, id):
        Best20.objects.filter (Q (id = id)). Update (grade = grade +1)
        print ('grade +1 success')
        return redirect ('')

Пожалуйста, дайте мне знать, еслиты знаешь как это исправить.Спасибо.

Ответы [ 2 ]

1 голос
/ 24 мая 2019
from django.db.models import F

Best20.objects.filter(id=id).update(grade=F('grade')+1)

, так как вы используете столбец той же модели, вам нужно использовать функцию F для этого.

1 голос
/ 24 мая 2019

Нельзя указать имя пользователя в запросе как оценка = оценка +1. Так и должно быть.

from django.db.models import F

Best20.objects.filter (Q (id = id)).update(grade = F('gradle') + 1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...