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
`
答案 0 :(得分:0)
您需要将该Manager类分配给这样的模型:
class Movie(models.Model):
# fields
objects = MovieManager()
更多信息可以在documentation
中找到。