У меня есть API (использующий django-rest-framework) с двумя моделями (например, Users и Cars).
Я пытаюсь получить последний (самый высокий ID) автомобиль пользователя, который также возвращается, когда пользователь
Я пытался включить cars = CarSerializer(many=True)
в сериализаторе пользователя, который возвращает все автомобили для этого пользователя.
Я пытался cars = CarSerializer(many=False)
, который возвращает нужный мне формат, но ни один автомобиль не включается.
код
модель автомобиля
class Car(models.Model):
name = models.TextField(default='')
year = models.IntegerField(null=True)
owner = models.ForeignKey('User', related_name='cars')
автомобильный сериализатор
class CarSerializer(serializers.ModelSerializer):
class Meta:
model = Car
fields = ('id', 'name', 'year', 'owner')
пользовательский сериализатор
class UserSerializer(serializers.ModelSerializer):
car = CarSerializer(many=True)
class Meta:
model = User
fields = ('id', 'first_name', 'last_name', 'car')
вид из машины
class CarViewSet(viewsets.ReadOnlyModelViewSet):
queryset = Car.objects.all()
serializer_class = CarSerializer
вид пользователя
class UserViewSet(viewsets.ReadOnlyModelViewSet):
queryset = User.objects.all()
serializer_class = UserSerializer
Что я ищу
Учитывая две машины, принадлежащие пользователю с идентификатором 1:
id: 1
owner: 1
name: "kinda okay car"
year: 2012
id: 2
owner: 1
name: "the fastest one"
year: 2020
JSON Результат GET / users / 1
{
"id": 1,
"first_name": "Bob",
"last_name": "McFastCar",
"car": {
"name": "the fastest one",
"year": 2020
}
}
Что я сейчас получаю
JSON Результат GET / users / 1
{
"id": 1,
"first_name": "Bob",
"last_name": "McFastCar",
"cars": [
{
"id": 2,
"owner": 1
"name": "the fastest one",
"year": 2020
},
{
"id": 1,
"owner": 1
"name": "kinda okay car",
"year": 2012
}
],
}
Спасибо, я надеюсьВы можете помочь мне найти решение.