モデルの主な目的はビジネス ロジックを含めることなので、ほとんどのコードを django モデル内にメソッドの形式で収めたいと考えています。たとえば、get_tasks_by_user()
タスク モデル内にという名前のメソッドを書きたいとします。としてアクセスできるように
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)
が、そのようなロジックをすべてモデルに保持したいと考えています。ですので、正しい方法を教えてください。
ありがとう