1

私はテーブル "設定"を持っています。djangoで単一オブジェクトを返す方法GET api(rest framework)

class Configuration(models.Model): 
    inventory_check = models.BooleanField(default=False) 
    refund = models.BooleanField(default=False) 
    record_seat_number = models.BooleanField(default=False) 
    base_url = models.URLField() 

このテーブルには、単一のエントリを持つことになります。

class ConfigurationSerializer(serializers.ModelSerializer): 
    class Meta: 
     model = Configuration 
     fields = '__all__' 

私はAPIのための残りのフレームワークを使用しています。以下は、シリアライザです。以下はViews.py

@api_view(['GET']) 
def get_configuration(request): 
    m = Configuration.objects.all() 
    serializer = ConfigurationSerializer(m, many=True) 
    return Response(serializer.data, status=status.HTTP_200_OK) 

これは完全に機能します。しかし、問題は、配列内のオブジェクトを返すということです。

[ 
{ 
    "id": 1, 
    "inventory_check": false, 
    "refund": true, 
    "record_seat_number": false, 
    "base_url": "http://localhost:8000/" 
} 
] 

私が欲しいのは、配列なしでオブジェクトのみを送信することです。これを達成する方法は?

+2

あなたは 'Configuration.objects.all()'あなたはクエリセットを取得しないとき。これはJSONの配列に変換されます。明示的に単一のオブジェクトだけが必要な場合は、デザインを再考する必要があります。たとえば、 'Configuration.objects.get(pk = 1)'は、利用可能であれば、単一のオブジェクトを返します。 – cezar

+0

ありがとうございました:)それを入手しました –

答えて

1

単にシリアライザのインス​​タンスから真=多くを削除します。

serializer = ConfigurationSerializer(m) 
+0

私はそれがエラーを与えることを削除する場合。 –

0
m = Configuration.objects.get(id=1) # you need to get single object here 
serializer = ConfigurationSerializer(m) # remove many = True 
関連する問題