TypeError:“通知”对象不可迭代

Posted

技术标签:

【中文标题】TypeError:“通知”对象不可迭代【英文标题】:TypeError: 'Notification' object is not iterable 【发布时间】:2018-01-20 22:12:14 【问题描述】:

我是 django 的新手。我遇到了一个错误“对象不可迭代”。 请帮帮我..

//view.py

class NotificationList(APIView):

    def get(self,request,user_id,format=None):

        noti = Notification.objects.filter(user_id=user_id)
        val=[]
        for n in noti:
            serializer = GetNotificationSerializer(n,many=True)
            in_id = serializer.data.get('interest_id') // this statement makes error

//serializer.py

class GetNotificationSerializer(serializers.Serializer):
      interest_id = serializers.PrimaryKeyRelatedField(queryset=Interest.objects.all())
      user_id = serializers.PrimaryKeyRelatedField(queryset=User.objects.all())
      article_id = serializers.PrimaryKeyRelatedField(queryset=Article.objects.all())
      status = serializers.IntegerField(required = True)

//model.py

class Notification(models.Model):
    interest_id = models.ForeignKey(Interest, on_delete=models.CASCADE)
    user_id = models.ForeignKey(User, on_delete=models.CASCADE)
    article_id = models.ForeignKey(Article, on_delete=models.CASCADE)
    status = models.IntegerField()

【问题讨论】:

把错误回溯 @JuanMiGabarron 我的错误回溯添加在下面 【参考方案1】:

删除许多 kwargs

serializer = GetNotificationSerializer(n,many=True)
#                                        ^^^

serializer = GetNotificationSerializer(n)
#                                     ^^^

【讨论】:

以上是关于TypeError:“通知”对象不可迭代的主要内容,如果未能解决你的问题,请参考以下文章

TypeError: 'float' 类型的对象没有 len() & TypeError: 'float' 对象不可迭代

TypeError:'bool' 对象不可迭代

“TypeError:'StratifiedShuffleSplit'对象不可迭代”的原因可能是啥?

Python - TypeError:'int'对象不可迭代

“TypeError:'WebElement'对象不可迭代”错误代码python爬取

TypeError:“RelatedManager”对象不可迭代