gpt4 book ai didi

Python/Django 与 models.py 的循环依赖(不在ForeignKey.etc 中)

转载 作者:行者123 更新时间:2023-12-01 05:06:58 26 4
gpt4 key购买 nike

我有 x 个 models.py 文件,位于 x 个不同的 Django 应用程序中。我有一些与我在应用程序中调用的所述模型相关的疑问。我认为干燥化的最佳方法是通过模型内部的方法调用查询。

这些查询方法实际上查询/other/应用程序中的/other/模型(以及其他 models.py 文件)。我知道这会增加耦合,但这是一个大型且高度特化的项目,因此我无法真正为很多东西编写通用的可重用应用程序。

例如:

class Mentor(models.Model):
# ...
def get_future_shifts(self):
return Shift.objects.filter(mentor = self, session__date__gt = timezone.now())

我最终得到了循环依赖(它跨越了 4 个应用程序,所以我认为除非绝对必要,否则在这里发布所有代码太长了)。

SO 上 Django 模型的常见循环依赖建议与 models.ForeignKey 相关,这不是我的问题。我实际上需要访问“外国”模型。

有人告诉我,循环依赖是糟糕设计的标志,而我的糟糕设计是因为我的模型中有太多动态辅助方法? Django 并没有真正提供任何其他地方可以在不遵守 DRY 的情况下放置这些内容。

最佳答案

存在一个方法,django.db.models.get_model(),它可以获取给定名称的模型。这将解决这个问题,因为您实际上并未导入模型。

关于Python/Django 与 models.py 的循环依赖(不在ForeignKey.etc 中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24818459/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com