У меня есть модель 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()
тоже не работает.
Есть предложения или советы? Это было бы здорово, спасибо заранее!