в Django имеют отношение многие ко многим, где я использую selected_related для извлечения данных связанных таблиц.Тем не менее, данные связанных таблиц вложены в каждую запись, я хотел бы инвертировать отношения, возможно ли это без специального сериализатора?
, чтобы перейти:родительские отношения:
[
{
"parent_items": ""Parent Item Number 1",
"id": 1,
"item": {
"id": 1,
"description": "Sub Item 1",
},
{
"item": {
"id": 2,
"description": "Sub Item 2 ",
},
},
{
"parent_items": " Parent Item Number 2",
"id": 2,
"item": {
"id": 1,
"description": "SubItem Item 2",
} ............
]
А вот Сериализатор, Модель и представление.
Модели:
class MainItem(models.Model):
id = models.IntegerField(primary_key=True)
description = models.CharField(max_length=50)
class SubItem(models.Model):
"""Equates to parent items"""
id = models.IntegerField(primary_key=True)
main_item = models.ForeignKey(MainItem, null=False)
description = models.CharField(max_length=50)
class Main(models.Model):
id = models.AutoField(primary_key=True)
href = models.CharField(max_length=250)
sub_items = models.ManyToManyField(SubItem)
Сериализатор:
class SubItemSerializer(ModelSerializer):
class Meta:
model = SubItem
fields = '__all__'
depth = 1
Вид:
class ItemsView(APIView):
def get(self, request):
items = SubItems.objects.select_related('main_item').all()
issue_ser = SubItemSerializer(issues, many=True)
return Response(issue_ser.data)