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

Я использую Python 3.7.У меня много проблем с выяснением, как и где я должен поместить метод, который создает и сохраняет несколько объектов.У меня есть это в моем файле models.py

class ArticleStatManager(models.Manager):
    def save_main_article(self, article):

Затем в другой части кода я вызываю

ArticleStat.objects.save_main_article(article)

, но это приводит к ошибке

    ArticleStat.objects.save_main_article(article)
AttributeError: 'Manager' object has no attribute 'save_main_article'

Что я делаю не так или где я должен разместить этот код, чтобы я мог правильно его вызвать?

Ответы [ 2 ]

0 голосов
/ 21 января 2019

Как отметил @DanielRosman в своем комментарии, вы должны установить ArticleStatManager как менеджер по умолчанию (вы хотите использовать атрибут objects, поэтому он должен быть менеджером по умолчанию)

class ArticleStat(models.Model):
    objects = ArticleStatManager()

Вы также можете установить другого менеджера только для этой цели:

class ArticleStat(models.Model):
    objects = Manager()
    articlesmanager = ArticleStatManager()

, а затем вы можете:

ArticleStat.articlesmanager.save_main_article(article)
0 голосов
/ 21 января 2019

Вы должны указать модели использовать ваш собственный менеджер моделей.

class ArticleStat(models.Model):
    objects = ArticleStatManager()

(DOCS)

...