AttributeError:'Manager'对象没有属性'all_with_related_persons_and_score'

时间:2019-10-06 09:36:52

标签: django python-3.x django-models django-views

File "/home/syed007/PYTHON/myprojects/MyMDB/django/core/views.py", line 60, in MovieDetail queryset = Movie.objects.all_with_related_persons_and_score() AttributeError: 'Manager' object has no attribute 'all_with_related_persons_and_score'

我在Python 3.6上使用Django 2.2.4

当运行“ python3 manage.py makemigrations core”时,出现上述错误,然后更改了视图脚本,并且该脚本起作用了。但是我们不能发表意见。但是,这创建了我的模型。但是再次,当运行命令“ python3 manage.py runserver”时,出现此错误-

class MovieDetail(DetailView):
    queryset = Movie.objects.all_with_related_persons_and_score()



from django.db import models
from django.conf import settings
from django.db.models.aggregates import Sum


class MovieManager(models.Manager):

    def all_with_related_persons(self):
        qs = self.get_queryset()
        qs = qs.select_related('director')
        qs = qs.prefetch_related('writers', 'actors')
        return qs

    def all_with_related_persons_and_score(self):
        qs = self.all_with_related_persons()
        qs = qs.annotate(score=Sum('vote__value'))
        return qs

`

1 个答案:

答案 0 :(得分:0)

您需要将该Manager类分配给这样的模型:

class Movie(models.Model):
    # fields
    objects = MovieManager()

更多信息可以在documentation中找到。