F表达式无法更新数据库中的模型

时间:2019-04-19 18:16:24

标签: python django expression

我有一个带有字段计数器的Django模型。每次调用列表视图时,我都想更新此字段,将其递增1。我正在尝试使用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()也不起作用。

有什么建议或提示吗?那就太好了,谢谢!!

0 个答案:

没有答案