2024-10-02 02:39:40 发布
网友
几天前,一个人向我解释说,在RubyonRails上,查询是在模型上完成的。因为它在视图和查询中被请求之前已经保存在您的数据中
顺便说一句,我学习并一直工作到现在,我正在views.py上设置查询并通过上下文变量传递。所以我开始阅读Model.Manager,但仍然没有找到哪种方法更好的答案:
这是一个关注点分离的问题:
Click here for Documentation
Ref.
默认情况下,Django向每个Django模型类添加一个名为objects的管理器。 如果您有特定的业务逻辑,您可以使用管理器覆盖内置的模型方法,如save()和delete(),将业务逻辑添加到默认数据库行为中,或者您可以专门设计一些查询逻辑
文件名-->;models.py
from .managers import ModelNameManager class ModelName(Base): title = models.CharField(max_length=255, blank=True, null=True) headline = models.CharField(max_length=255, blank=True, null=True) objects = ModelNameManager()
在应用程序中创建文件managers.py文件 文件名-->;经理.py
class ModelNameQuerySet(models.QuerySet): def by_name(self, id): return self.filter(id=id) class ModelNameManager(models.Manager): def get_queryset(self): return ModelNameQuerySet(self.model, using=self._db) def by_name(self, ad): return self.get_queryset().by_name(id)
在Views.py或任何服务文件中,将显示您的查询
import ModelName obj = ModelName.get_queryset(id) obj.title
这将基于在管理器中编写的查询返回对象
我希望这是有帮助的
每个模型都与一个管理器关联(默认为objects)
objects
>>> from django.contrib.auth.models import User >>> user = User.objects.all() >>> type(user) <class 'django.db.models.query.QuerySet'>
当您需要对模型进行任何查询时,您需要一个管理器。在上面的示例中,用户正在查询用户模型的objects管理器
3-queries made on models.Manager class for each model-正确的解释
3-queries made on models.Manager class for each model
这是一个关注点分离的问题:
Click here for Documentation
Ref.
默认情况下,Django向每个Django模型类添加一个名为objects的管理器。 如果您有特定的业务逻辑,您可以使用管理器覆盖内置的模型方法,如save()和delete(),将业务逻辑添加到默认数据库行为中,或者您可以专门设计一些查询逻辑
文件名-->;models.py
在应用程序中创建文件managers.py文件 文件名-->;经理.py
在Views.py或任何服务文件中,将显示您的查询
这将基于在管理器中编写的查询返回对象
我希望这是有帮助的
每个模型都与一个管理器关联(默认为
objects
)当您需要对模型进行任何查询时,您需要一个管理器。在上面的示例中,用户正在查询用户模型的
objects
管理器3-queries made on models.Manager class for each model
-正确的解释相关问题 更多 >
编程相关推荐