F выражение не работает, чтобы обновить мою модель в базе данных - PullRequest
1 голос
/ 19 апреля 2019

У меня есть модель django, у которой есть счетчик поля Каждый раз, когда я вызываю представление списка, мне нравится обновлять это поле, увеличивая его на единицу. Я пытаюсь сделать это с помощью выражения F. В соответствии с другими вопросами здесь и документами Django, что-то вроде этого должно помочь:

Моя модель:

class Job(models.Model):
    skills = models.TextField(blank=False, default="Skills")
    counter = models.IntegerField(default=0)

Мой взгляд:

class ListJobView(ListView):
    model = Job
    context_object_name = 'jobs'
    template_name = 'list_jobs.html'
    ordering = '-pub_date'
    # paginate_by = 1

    def increment_counter(self):
        count = Job.objects.get_or_create(id=66)
        count.counter = F('counter') + 1
        count.save(update_fields=["counter"])

К сожалению, это не работает. Есть ли что-то очевидное, что я делаю не так?

Кроме того, я хотел бы обновить все счетчики для каждой работы. Но count = Job.objects.all() тоже не работает.

Есть предложения или советы? Это было бы здорово, спасибо заранее!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...