我有一个包含两个计数器的模型:
类 MyObject(模型。模型): ... student_c = models.PositiveIntegerField(默认=0,空白=真,空=真) company_c = models.PositiveIntegerField(默认=0,空白=真,空=真) def total_followers(self): 返回 self.student_c + self.company_c
一个工作正常并返回一个整数值,但另一个返回:
django.db.models.expressions.ExpressionNode object at 0x7ff4d8320a10
我试图将 PositiveIntegerField 更改为 IntegerField 并用另一个名称重命名该字段,但我仍然得到相同的结果?我破坏了数据库并重建了很多次
在我的模板中我可以看到这个: (+: (DEFAULT: ), 1)
事实上,我正在尝试像这样进行原子增量:
project = get_object_or_404(Project, pk=kwargs['pk'])
project.student_c = F('student_c') + 1
project.save(update_fields=['student_c']) or even just project.save()
这就是问题的来源。我看了看,发现了相同的代码: Atomic increment of a counter in django
我究竟做错了什么 ?
任何帮助将不胜感激。
谢谢