我有一个模型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='')
问题:
将多个对象的相同文本字段合并为可以由Django Rest Framework安全序列化的对象的最佳方法是什么?例如,我可以在视图中执行此操作,但感觉并不好:
activity.data = activity_json
activities.data = activity.data +'DELIMITER'+ activity.data
这甚至是一个好习惯吗?还是有更好的方法实现相同目标?
请注意,我没有使用Postgres,所以不能使用JSON模型字段。