我正在使用Django创建一个简单的应用程序。我意识到我经常做同样的手术。例如,我经常需要获取所有具有isPublick = True
的Article对象。所以我想知道,是否可以在模型中定义一个get_published
函数?
如果模型看起来像这样(简化)
class Article(models.Model):
title = models.CharField(...)
isPublished = models.BooleandField()
def get_active(self):
return Article.objects.filter(isPublicshed = 1)
但这似乎不起作用。
你能建议一种实现这一功能的方法吗?
3条答案
按热度按时间wlzqhblo1#
你可能需要的是一个客户经理
Django文档:
然后你可以做一些事情,比如:
1sbrub3j2#
正如这里的文档所述,如果你需要向你的对象添加自定义 * 行级 * 功能,你需要在你的模型上定义自定义方法。然而,如果你追求的是自定义 table-wide 功能(比如获取符合某些条件的所有Article对象),你必须在model Managers上定义自定义方法(就像上面的 aciniglio 在他们的回答中指出的那样)。
2exbekwf3#
你可以使用staticmethod装饰器。