2015-10-20 25 views
1

我的Django应用程序有几个应用程序,每个都有自己的models.py。我也有一个api应用程序,它提供了一个REST API。应该在应用程序之间共享的自定义对象管理器应该去哪里?

对于模型A,我经常想获得的数据分页以某种方式(该data-tables方式)。我想在几个地方(在api应用程序和一些主要的UI应用程序中)执行此操作,因此我创建了自定义对象管理器PaginationManager并将其附加到模型A。然后

生活很好,干,但现在另一个模型B需要得到一个分页的方式。我想使用相同的PaginationManager,但应该使用哪个应用程序?它是否属于任何应用程序之外?这似乎有很多业务逻辑要放在util文件夹或其他东西。

+0

它应该像许多应用程序中使用的其他Python代码一样进入模块。 –

回答

4

最好的做法是使它尽可能通用和其解压缩到一个libutils应用程序,可以通过您的所有应用中重复使用。

我通常会有一个utils应用程序,其中包含像paginators.py,serializers.py,mixins.py等。通常更通用和可重用性越好。

+1

我也这么做。只要你可以导入它,无论你对什么地方有意义,你的团队都和其他任何地方一样。 – Brandon