Django Python организует JSON в один узел - PullRequest
0 голосов
/ 09 октября 2019

Я работаю с устаревшей базой данных, которая имеет 2 записи, данные в каждой записи содержат следующие значения: имя, адрес электронной почты, компания, телефон

Эти 2 записи содержат одно и то же значение данных, кроме значениядля телефона, который отличается.

Когда я получаю их в JSON, я получаю следующий вывод:

"results": [
        {
            "Name": "Mack",
            "Email": "Mack@email.com",
            "Company": "Company Name",
            "Phone": "123456789"
        },
        {
            "Name": "Mack",
            "Email": "Mack@email.com",
            "Company": "Company Name",
            "Phone": "1111111"
        }
    ]

Мой вопрос: Как вы можете видеть, есть некоторые дублирующие данные в выводе выше,поэтому есть способ упорядочить вывод JSON следующим образом:

"results": [
        {
            "Name": "Mack",
            "Email": "Mack@email.com",
            "Company": "Company Name",
            "Phone": "123456789"
            "Phone 2": "1111111"
        }
    ]

Вот код для файла Views.py:

class DataView(viewsets.ModelViewSet):
    queryset = DataList.objects.all()

    serializer_class = DataSerializer

Вот код для Serializers.pyfile:

class DataSerializer(serializers.ModelSerializer):
    data_details = serializers.SerializerMethodField()

    class Meta:
        model = DataList
        fields = 'data_details'

    def get_data_details(self, obj):
        return [{
            'name': obj.name,
            'email': obj.email,
            'company': obj.company,
            'phone': obj.phone,

        }]

Вот код для файла models.py:

class Data(models.Model):
    name = models.CharField(db_column='name', primary_key=True, max_length=50)  
    email = models.CharField(db_column='email', max_length=50)
    company = models.CharField(db_column='company', max_length=100)
    phone= models.TextField(db_column='phone')  

    class Meta:
        managed = False 
        db_table = 'data_table'

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...