AttributeError: объект «Менеджер» не имеет атрибута «all_with_related_persons_and_score» - PullRequest
0 голосов
/ 06 октября 2019

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'

Я использую Django 2.2.4 на Python 3.6

, когда запускаю "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 голосов
/ 06 октября 2019

Вам необходимо присвоить этот класс Manager такой модели:

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

Дополнительную информацию можно найти в documentation.

...