Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django Rest Framework TypeError需要类似字节的对象,而不是';str';_Python_Django_Django Rest Framework - Fatal编程技术网

Python Django Rest Framework TypeError需要类似字节的对象,而不是';str';

Python Django Rest Framework TypeError需要类似字节的对象,而不是';str';,python,django,django-rest-framework,Python,Django,Django Rest Framework,我已经用DRF创建了一个restapi。一切正常,但有一个资源(shoppingListItems)总是抛出以下错误: 类型错误 at/v1/shoppingListItems/ 需要类似字节的对象,而不是“str” 请求方法:获取 请求URL: Django版本:2.2.7 异常类型:TypeError 异常值: 需要类似字节的对象,而不是“str” 只有当一个或多个项目匹配时,才会出现问题。如果结果集为空,则没有错误 以下是我的观点.py: class ShoppingListViewSe

我已经用DRF创建了一个restapi。一切正常,但有一个资源(shoppingListItems)总是抛出以下错误:

类型错误

at/v1/shoppingListItems/

需要类似字节的对象,而不是“str”

请求方法:获取

请求URL:

Django版本:2.2.7

异常类型:TypeError

异常值: 需要类似字节的对象,而不是“str”


只有当一个或多个项目匹配时,才会出现问题。如果结果集为空,则没有错误

以下是我的观点.py:

class ShoppingListViewSet(viewsets.ModelViewSet):
    queryset = ShoppingList.objects.all()
    serializer_class = ShoppingListSerializer

class ItemViewSet(viewsets.ModelViewSet):
    queryset = Item.objects.all()
    serializer_class = ItemSerializer

class ShoppingListItemViewSet(viewsets.ModelViewSet):
    queryset = ShoppingListItem.objects.all()
    serializer_class = ShoppingListItemSerializer
这是我的模型.py:

class Item(models.Model):
    id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
    name = models.CharField(max_length=200)

    def __str__(self):
        return self.name

class ShoppingList(models.Model):
    id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
    name = models.CharField(max_length=200)
    members = models.ManyToManyField(User, through='Membership')
    items = models.ManyToManyField(Item, through='ShoppingListItem')

    def __str__(self):
        return self.name

class ShoppingListItem(models.Model):
    id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
    shoppinglist = models.ForeignKey(ShoppingList, on_delete=models.CASCADE)
    item = models.ForeignKey(Item, on_delete=models.CASCADE)
    amount = models.IntegerField()
    price = models.FloatField(null=True)
    status = models.BinaryField()
以下是我的serializers.py:

class ItemSerializer(serializers.HyperlinkedModelSerializer):
    class Meta:
        model = Item
        fields = ['id', 'name']

class ShoppingListSerializer(serializers.HyperlinkedModelSerializer):
    class Meta:
        model = ShoppingList
        fields = ['id', 'name', 'members']

class ShoppingListItemSerializer(serializers.HyperlinkedModelSerializer):
    class Meta:
        model = ShoppingListItem
        fields = ['id', 'shoppinglist', 'item', 'amount', 'price', 'status']
我不知道出了什么问题,我希望能得到一些帮助


谢谢。

这是因为类ShoppingListItem中的状态字段(BinaryField)


尝试将其更改为解决问题的CharField

。非常感谢你。我花了几个小时寻找这个原因。