python - 保存期间将一个模型字段计数的值保存到同一模型的另一个字段
问题描述
我正在开发一个池应用程序,并希望将 total_likes 属性添加到模型中,这将允许我计算喜欢该问题的用户数量,就像 Youtube 社区问题所允许的那样。
我只是试图覆盖 save(*args, **kwargs) 但有很多错误。
我现在该怎么办
from django.db import models
from django.contrib.auth.models import User
class Question(models.Model):
enter code here text = models.TextField()
voters = models.ManyToManyField(to=User, blank=True, related_name='voters')
impression = models.CharField(max_length=30, choices=impression_choices, blank=True, null=True)
date_created = models.DateTimeField(auto_now_add=True)
likes = models.ManyToManyField(to=User, related_name='likes', blank=True)
total_likes = models.IntegerField(default=0)
def __str__(self):
return self.text
def save(self, *args, **kwargs):
self.total_likes = self.likes_set.count()
super().save(*args, **kwargs)
下面的模型工作得很好。在上面的模型中,我试图覆盖 save() 方法但不知道如何?
class Choice(models.Model):
question = models.ForeignKey(Question, on_delete=models.CASCADE)
text = models.CharField(max_length=20)
votes = models.IntegerField(blank=True, default=0)
def __str__(self):
return self.text
解决方案
推荐阅读
- json - 发送包含数组的数组 json 主体(Alamofire、Swift、iOS)
- ios - How to use SCNTechnique to create a "masked" portal effect in SceneKit / ARKit?
- html - 放置一个
- c# - Causes of TCPClient socket error 0x80004005
- java - Java中的间隔,用户选择最小值和最大值
- freemarker - 按值过滤数组
- c++ - 我应该如何在 C++ 中打印 pthread ID?
- python - TypeError:我的python脚本需要一个整数
- android - 单击通知不会打开 Android 应用程序
- ios - dyld:库未加载:/usr/lib/libstdc++.6.dylib