我有一个代码设计问题。假设我们有一个带有Web服务的web应用程序(rest api)以及模型User,Job和JobFavorite。 JobFavorite模型是一个m2m模型,包含用户和作业字段,这意味着用户可以将作业标记为收藏。
让我们说我们有两个观点。
作业列表视图,用户可以在其中查看所有可用的作业。
过滤的作业列表视图,用户只能看到标记为收藏的作业。
在两个视图中,用户都可以执行相同的操作:申请工作和(联合国)将工作标记为收藏。
在第一个视图中,我们对api进行ajax调用以检索所有可用的作业。问题与第二种观点有关。
我们应该调用作业api并检索作业模型,还是应该调用JobFavorite api并检索JobFavorite模型,然后在模板中使用JobFavorite.job字段?
我希望问题清楚,并遵循规则。
更新:伪代码中的类:
class Job():
owner - foreign key(User)
...etc
class JobFavorite():
user - foreign key(User)
job - foreign key(Job)
class User():
name
phone
答案 0 :(得分:0)
因此,在过滤的作业列表视图中,您调用GET / jobs?favorites = true以仅获得受欢迎的用户作业。然而,在后端,这可以使用不同的策略来实现。您可以使用单独的JobFavourite模型来存储收藏夹。或者在User模型上创建json / array字段来存储他的收藏夹(谨慎使用后两者)。
这个建议也有另一个积极意义。治疗is_favourite" flag"作为过滤器,您可以统一使用作业(这里很容易应用另一个过滤器)。