2017-08-01 107 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

相關問題