我的models.py:
class Channel(models.Model):
title = models.CharField(max_length=255)
def snapshot_statistics(self):
new_channel_stat = ChannelStatistic(channel=self)
new_channel_stat.save()
class ChannelStatistic(models.Model):
channel = models.ForeignKey(Channel, on_delete=models.CASCADE)
view_count = models.IntegerField(default=0)
def save(self, *args, **kwargs):
self.view_count = 3,
super(ChannelStatistic, self).save(*args, **kwargs)
触发snapshot_stastistics()时出现以下错误:
int() argument must be a string, a bytes-like object or a number, not 'tuple'
在django调试中我可以看到:
values
[(<django.db.models.fields.related.ForeignKey: channel>, None, 35),
(<django.db.models.fields.IntegerField: view_count>, None, (3,)),
django将我对3的赋值视为view_count属性为tupel。
这种行为的问题是什么? 我该如何解决?
提前致谢!
答案 0 :(得分:8)
这里有一个不需要的逗号:
self.view_count = 3,
这会创建一个元组。