Muti-array результат в моделях django
У меня есть второй экземпляр базы данных под названием slave_db в этой базе данных есть такие таблицы, профиль
и детали земель
Я создал model.py для них
from django.db import models
class Fields(models.Model):
field_id = models.IntegerField()
field_name = models.CharField(max_length=50)
class Meta:
managed = False
db_table = 'tbl_fields'
class Profile(models.Model):
profile_id = models.IntegerField()
name = models.CharField(max_length=20)
fields = models.OneToOneField(Fields)
class Meta:
managed = False
db_table = 'tbl_profile'
У меня также есть мой serialize.py
from rest_framework import serializer
from .models import Profile
class ProfileSerializer(serializers.ModelSerializer):
class Meta:
model = Profile
fields = ['profile_id','control_no','name','fields']
тогда в моем файле views.py
from django.shortcuts import render
from rest_framework.decorators import api_view, permission_classes
from rest_framework.response import Response
from rest_framework.generics import get_object_or_404
from .models import Profile
from .serializers import Profile Serializer
@api_view(['GET'])
def ProfileDetails(request):
control_no = request.GET.get("control_no")
details = Profiles.objects.using("slave_db").select_related("fields").filter(control_no = control_no)
detailSerializer = ProfileSerializer(details, many=True)
print(detailSerializer)
теперь результат будет
[
{
"profile_id": 1,
"control_no": "8-001",
"name": "Foo",
"fields": "8-001"
},
{
"profile_id": 1,
"control_no": "8-002",
"name": "Bar",
"fields": "8-002"
},
]
как я могу правильно получить данные и получить такой результат?
[
{
"profile_id": 1,
"control_no": "8-001",
"name": "Foo",
"fields": [
{
"field_id": 1
"field_name": "Charlie Land"
},
{
"field_id": 2
"field_name": "Alpha Land"
}
]
},
{
"profile_id": 1,
"control_no": "8-002",
"name": "Bar",
"fields": [
{
"field_id": 3
"field_name": "Genesis Land"
},
{
"field_id": 4
"field_name": "Zebra Land"
},
{
"field_id": 5
"field_name": "Master Land"
}
]
},
]
Я попробовал models.ManyToManyFields(Field) затем использовал prefetch_related но при проверке выполненного запроса он не выполняет объединение 2 таблиц. и результата не было.

