-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.
私はどこか他の「ソース」を使用していないので、それは、このコードを参照することだと仮定します。ジャンゴAssertionErrorが
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