2017-08-01 109 views
0

我models.py:Django的型号:INT()参数必须是一个字符串,一个类字节对象或数字,而不是“元组”

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的治疗到VIEW_COUNT ATT我的3分配作为tupel的a ribute a。

这是什么问题? 我该如何解决它?

在此先感谢!

+0

是的,你确实分配了一个元组:'self.view_count = 3,'。看到那个逗号? –

+0

非常感谢。晚上工作时我应该休息一下......;) – selli69

回答

5

有不需要的逗号这里:

self.view_count = 3, 

,创建一个元组。

+2

非常感谢。晚上工作时我应该休息一下......;) – selli69

相关问题