Объединить несколько текстовых полей в DJANGO в одно текстовое поле и затем сериализовать - PullRequest
0 голосов
/ 18 ноября 2018

У меня есть модель Activity, в которой есть поле data, содержащее строку JSON:

class Activity(models.Model):
    date_added = models.DateTimeField(auto_now_add=True)
    start_date = models.DateTimeField(default=datetime.datetime.now)
    data = models.TextField() # stores activity's JSON in text format, not as Python object
    number = models.IntegerField(default=0)

Я хотел бы создать конечную точку API, которая будет открывать data поля всех Activity объектов в виде одной большой строки JSON, поэтому мое другое приложение может получать все данные в одном запросе.

Поэтому я подумал, что создам другую модель, которая будет содержать такой объединенный JSON:

class Activities(models.Model):
    #"data" field contains all Activity model JSONs as one big JSON string that can be easily 
    # serialized and received by Bokeh app in single request, as opposed to Bokeh app making requests to single activities

    data = models.TextField(default='')

Вопросы:

  1. Каков наилучший способ объединения одинаковых текстовых полей нескольких объектов в одно, которое можно безопасно сериализовать с помощью Django Rest Framework?Например, я могу сделать это в представлениях, но это нехорошо:

    activity.data = activity_json

    activity.data = activity.data + 'DELIMITER' + activity.data

  2. Это даже хорошая практика?Или есть лучшие способы добиться того же?

В качестве примечания я не использую Postgres, поэтому не могу использовать поле модели JSON.

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