django-REST:嵌套关系与PrimaryKeyRelatedField

Alt*_*yyr 9 django-rest-framework

如果您有大量数据,使用嵌套关系或PrimaryKeyRelated字段会更好吗?

我有一个关系很深的模特.
为简单起见,我没有添加colums.

模型:

模型

用例:

  1. 用户创建1个具有2个锻炼和3个锻炼锻炼的锻炼计划.
  2. 用户为每个WorkoutExercise/Exercise创建6个Set.
  3. 用户开始锻炼>创建新的FinishedWorkout
  4. 用户首先练习并输入已使用的权重>创建FinishedSet的新FinishedWorkoutExercise

题:

我想跟踪每个锻炼计划>锻炼>锻炼的进展情况.因此,随着时间的推移,用户可能已完成了数十次锻炼,因此如果数据库中已有数百套,则数百次.

如果我现在使用嵌套的关系,我可能会加载很多我不需要的数据.但是如果我使用PrimaryKeyRelatedFields,我必须分别加载我需要的所有数据,这意味着我的前端会有更多的努力.

在这种情况下哪种方法更受欢迎?

编辑:
如果我使用PrimaryKeyRelatedFields,我如何区分是否例如Workoutplan中的Workouts是带有主键的数组还是带有加载对象的数组?

Dan*_*tas 2

如果您使用 PrimaryKeyRelatedField,您将有很大的过载来请求前端的必要数据

对于您的情况,我将使用您想要的字段(使用Meta.fields属性)创建特定的序列化器。因此,您不会加载不必要的数据,前端也不需要从后端请求更多数据。

如果您需要更多详细信息,我可以编写示例代码。