【发布时间】:2020-07-08 06:29:41
【问题描述】:
我正在开发允许用户在特定模型上创建自定义过滤器并将这些结果存储为一个组的功能。作为一个工作示例(为简洁起见,省略了导入):
class Client(models.Model):
email = CIEmailField()
class Activity(models.Model):
client = BaseForeignKey("client.Client", null=True, related_name="logged_activities")
employee = BaseForeignKey("business.Employee", null=True, related_name="logged_activities")
created = models.DateTimeField(auto_now_add=True)
我们想要创建过滤器,它将根据创建时间和关联的Employee 将Clients 分组到Activitys 上,并将这些结果存储在一个组中以供以后使用。这是一个非常简单的任务,除了允许用户修改过滤器配置和更新Client 上的字段,这两者都可能改变Client 是否匹配过滤器标准。 (注意:在本例中,更新 Client 是不可能的,可能会改变结果集,但未来的过滤器会。)
我想要多对多,这样我们就可以轻松地获取客户所在的组,反之,也可以让客户进入一个组,但我不清楚处理过滤器配置的最佳方式。我们的系统目前支持此功能,但过滤器无法正常工作,并且每当需要使用有关组的信息时都会运行过滤器查询。鉴于此以及其他一些因素,我们决定重建此功能,而不是尝试重构当前的实现。
【问题讨论】:
标签: python django postgresql django-models django-rest-framework