Django经理属性错误

Joh*_*ohn 0 django django-models

我有一个问题是为我的模型添加自定义方法.我在django书中找到了解决方案,但它不起作用.这是我的模型代码

class NewsManager(models.Manager):
    def getLastNews(self):
        return self.objects.order_by('-id')[:3]

class News(models.Model):
    title=models.SlugField()
    shortBody=models.CharField(max_length=250)
    fullBody=models.TextField()
    author=models.ForeignKey(User)
Run Code Online (Sandbox Code Playgroud)

现在我跑去python manage.py shell打字

from news.models import *
News.objects.getLastNews()
...
Attribute error Manager object have no attribute getLastNews
Run Code Online (Sandbox Code Playgroud)

我在哪里犯了错误?
顺便说一句,这是从模型获取信息并将其传递给视图的好方法吗?

Ned*_*der 6

您必须将经理与模型相关联:

class News(models.Model):
    # ..fields go here..

    objects = NewsManager()
Run Code Online (Sandbox Code Playgroud)

是的,这是向模型添加"表级"功能的好方法.