У меня очень глупая проблема.Все первичные ключи (id) возвращаются в виде строки, но мне нужно целое число.
Django==2.1.5
djangorestframework==3.9.1
djangorestframework-jsonapi==2.7.0
Модель:
class Room(models.Model):
id = models.IntegerField(primary_key=True)
creator = models.ForeignKey(
User,
verbose_name='Creator',
on_delete=models.CASCADE
)
invited = models.ManyToManyField(
User,
verbose_name='Invited',
related_name='invited_user'
)
number_1 = models.IntegerField(
default=1
)
number_2 = models.IntegerField(
default=2
)
number_3 = models.IntegerField(
default=3
)
date = models.DateTimeField('Created at', auto_now_add=True)
class Meta:
verbose_name = 'Chat room'
verbose_name_plural = "Chat rooms"
db_table = 'room'
Вид:
class Rooms(APIView):
permission_classes = [permissions.IsAuthenticated]
@staticmethod
def get(request):
# rooms = Room.objects.filter(creator=request.user)
rooms = Room.objects.all()
serializer = RoomSerializer(rooms, many=True)
return Response(serializer.data)
Сериализатор:
class RoomSerializer(serializers.ModelSerializer):
# id = serializers.IntegerField()
creator = UserSerializer(read_only=True)
invited = UserSerializer(many=True, read_only=True)
class Meta:
id = serializers.IntegerField(label='ID', read_only=True)
model = Room
fields = ['id', 'number_1', 'number_2', 'number_3', 'creator', 'invited', 'date']
Запрос:
{
"type": "Rooms",
"id": "3",
"attributes": {
"number_1": 1,
"number_2": 2,
"number_3": 3,
"date": "2019-02-08T12:30:39.095971Z"
},
"relationships": {
"creator": {
"data": {
"type": "User",
"id": "6"
}
},
"invited": {
"data": [
{
"type": "User",
"id": "3"
}
]
}
}
По запросу ID комнаты и ID пользователя - это строки, но мне нужен целочисленный тип.Если другое поле имеет целочисленные типы (число_1, число_2, число_3), оно возвращается как целое число.Понятия не имею, как это исправить.Спасибо за помощь