模型的主要目的是包含业务逻辑,所以我希望我的大部分代码都以方法的形式存在于 django 模型中。例如,我想编写一个名为get_tasks_by_user()
inside 任务模型的方法。这样我就可以访问它
Tasks.get_tasks_by_user(user_id)
以下是我的模型代码:
class Tasks(models.Model):
slug=models.URLField()
user=models.ForeignKey(User)
title=models.CharField(max_length=100)
objects=SearchManager()
def __unicode__(self):
return self.title
days_passed = property(getDaysPassed)
def get_tasks_by_user(self,userid):
return self.filters(user_id=userid)
但这似乎不起作用,我将其用作:
tasks = Tasks.objects.get_tasks_by_user(user_id)
但它给出了以下错误:
'SearchManager' object has no attribute 'get_tasks_by_user'
如果我删除objects=SearchManager
,那么只有错误的经理名称会改变,所以我认为这不是问题。好像我在做一些非常基本的错误,请告诉我我做错了什么以及我该如何做我想做的事情。我知道我可以通过 : 做同样的事情,Tasks.objects.filters(user_id=userid)
但我想将所有这些逻辑保留在模型中。所以请告诉这样做的正确方法是什么。
谢谢