Skip to main content
 首页 » 编程设计

python之Django 模型 : int() argument must be a string, 类似字节的对象或数字,而不是 'tuple'

2025年05月04日22txw1958

<分区>

我的模型.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_statistics() 时出现以下错误:

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 将我对 view_count 属性 a 的赋值 3 视为元组。

这种行为是怎么回事? 我该如何解决?

提前致谢!