-1
AssertionError at /api/purchases/person/
It is redundant to specify `source='name'` on field 'Field' in
serializer 'PurchaseSerializer', because it is the same as the field name.
Remove the `source` keyword argument.
我以为它指的是这个代码,因为我没有使用“源”其他地方:Django的Asse田
class PurchaseSerializer(serializers.HyperlinkedModelSerializer):
name = serializers.Field(source='name')
class Meta:
model = Purchase
fields = ['name']
我想能够过滤通过的“人”的购买,所以我只能看到他们的购买,但由于某种原因,当我键入一个存在于数据库中的人时,会出现类似上面的断言错误。如果我键入一个数据库中不存在的人,它将不会引发错误,但会返回一个空的JSON。这应该反之亦然,但不知道为什么这不起作用。
Models.py
class Purchase(models.Model):
name = models.CharField(max_length=255)
Urls.py
url(r'^api/purchases/(?P<username>.+)/$', views.PurchaseList.as_view()),
Views.py
class PurchaseList(generics.ListAPIView):
serializer_class = PurchaseSerializer
def get_queryset(self):
"""
This view should return a list of all the purchases for
the user as determined by the username portion of the URL.
"""
username = self.kwargs['username']
return Purchase.objects.filter(name=username)
你的回答稍微正确,它应该是serializers.ReadOnlyField()它会引发另一个错误,当我按照自己的方式执行时,因为我没有写入只读的字段。 – Aceboy1993