私はDjango Rest Frameworkを使用してREST APIを作成しています。マイシリアライザ:Django Rest Frameworkでの外部キー値の取得
class ItemSerializer(serializers.ModelSerializer): #inherit from this class
owner = serializers.ReadOnlyField(source='user.id')
class Meta:
model = Item
fields = ('id','name', 'owner')
class UserSerializer(serializers.ModelSerializer):
items = serializers.PrimaryKeyRelatedField(many=True, queryset=Item.objects.all())
class Meta:
model = User
fields = ('id', 'username', 'items')
のみモデル:今すぐ
class Item(models.Model):
name = models.CharField(max_length=10)
id = models.AutoField(primary_key=True)
owner = models.ForeignKey('auth.User', related_name='items', on_delete=models.CASCADE)
def __str__(self):
return self.name
私は、ユーザーGET
場合:
HTTP 200 OK 許可:GET、HEAD、OPTIONS のContent-Type:アプリケーション/ json 可変:受け入れる [ { "id":1、 "ユーザー名": "チャック"、 "アイテム":[ 1、] } ]
私は私が得ることができる方法によって、(このユーザーが持っているすべてのアイテムを受け取る
アイテムの主キーの代わりに名前?)。
このプロセスを逆にしてオブジェクトの所有者をすべて取得したい場合、どうすればいいですか?ここで私はこれまでの(所有者が不足している)している応答です:
HTTP 200 OK 許可:GET、POST、HEAD、OPTIONS のContent-Type:アプリケーション/ JSON は異なります [ { を受け入れます"ID":1、 "名前": "ベスト" }、{ "ID":2、 "名前": "パンツ" }] `
私はあなたのコード(コメント部分)に見ることができるようowners = serializers.ReadOnlyField(source='owner')
を追加しようとしましたが、私は次のエラーを持っている:
Object of type 'User' is not JSON serializable
はあなたの助けをいただき、ありがとうございます。