2016-04-26 51 views
0

我收到以下错误,无法找到如何解决它“EstablishmentType”对象不是可迭代

异常类型:TypeError异常值:“EstablishmentType”对象 不是迭代

类串行:

class TransactionSerializer(serializers.HyperlinkedModelSerializer): 
    establishment_from_id = serializers.HyperlinkedRelatedField(view_name='establishment_type', read_only=True, many=True) 

class Meta: 
    model = Transaction 
    fields = ('id', 'created_date', 'updated_date','establishment_from_id', 'quantity', 'owner_id', 'quantity_missing', 'gps_longitude', 'gps_latitude', 'gps_accuracy', 'type') 

模型

class Transaction(models.Model): 
    created_date = models.DateTimeField() 
    updated_date = models.DateTimeField() 
    establishment_from_id = models.ForeignKey(EstablishmentType, related_name="establishment_from") 
    establishment_to_id = models.ForeignKey(EstablishmentType, related_name="establishment_to") 
    quantity = models.FloatField() 
    owner_id = models.ForeignKey(User) 
    quantity_missing = models.FloatField() 
    status = models.ForeignKey(TransactionStatus) 
    gps_longitude = models.CharField(max_length=400) 
    gps_latitude = models.CharField(max_length=400) 
    gps_accuracy = models.CharField(max_length=400) 
    type = models.FloatField() 

    def __str__(self): 
     return str(self.id) 

class EstablishmentType(models.Model): 
    name = models.CharField(max_length=200) 
    #created_by = CreatingUserField(related_name="created_categories") 

    def __str__(self): 
     return self.name 

谢谢!

回答

0

尝试从串行器中取出many=True。 establishment_from_id是FK而不是M2M,因此对于每个实例它只会有一个值。如果这是EstablishmentType的序列化程序,那么有一个many=True

+0

@PaulCould感谢您的答案! 删除您所说的内容,现在向我出售以下错误: 无法使用视图名称“establishment_type”解析超链接关系的URL。您可能未能在您的API中包含相关模型,或者未正确配置此字段上的'lookup_field'属性。 –

+0

你有'EstablishmentType'的序列化程序吗?如果没有,你需要做一个,如果是的话,确保所有ViewSets都连接到路由器,这些路由器包含在你的urls.py中。 – Paul