drf-api-tracking
drf-api-tracking copied to clipboard
Serialize APIRequestLog
It is possible to serialize APIRequestLog when i try to create a serialize only user.id is returning: Here is my class: class ApiRequestTableSerializer(serializers.Serializer): requested_at = serializers.DateTimeField(format='%d %b %Y') path = serializers.CharField(source="get_path", read_only=True)
class Meta:
model = APIRequestLog
fields = ['id', 'requested_at', 'response_ms', 'status_code', 'method','user'
'path', 'remote_addr', 'host',
'query_params']
Your code but formatted:
class ApiRequestTableSerializer(serializers.Serializer):
requested_at = serializers.DateTimeField(format='%d %b %Y')
path = serializers.CharField(source="get_path", read_only=True)
class Meta:
model = APIRequestLog
fields = ['id', 'requested_at', 'response_ms', 'status_code', 'method', 'user',
'path', 'remote_addr', 'host',
'query_params']
Use serializers.ModelSerializer instead of serializers.Serializer.
Import serializers and APIRequestLog model.
from rest_framework import serializers
from rest_framework_tracking.models import APIRequestLog
Then:-
class ApiRequestTableSerializer(serializers.ModelSerializer):
requested_at = serializers.DateTimeField(format='%d %b %Y')
path = serializers.CharField(source="get_path", read_only=True)
class Meta:
model = APIRequestLog
fields = ['id', 'requested_at', 'response_ms', 'status_code', 'method', 'user',
'path', 'remote_addr', 'host',
'query_params']
It is working for me.