Ошибка создания менеджера пользовательских моделей Django
Я пытаюсь создать модель для веб-сайта Django, над которым я работаю, и у меня есть все поля, как вы можете видеть в приведенной ниже модели обзоров. Теперь я прочитал, как реализовать собственный менеджер моделей и по какой-либо причине для строки кода: "object = ReviewsManager", django выдает ошибку, говоря, что это неопределенная переменная. Все примеры, которые я видел, делают то же самое, но они, очевидно, работают просто отлично, есть идеи, что происходит? Чтобы было ясно, я импортировал все, что нужно импортировать уже, так что я знаю, что это не проблема. В качестве примечания следует упомянуть, что я использую django 1.6, на случай, если это имеет значение
//This is the model itself
class Reviews(models.Model):
mentor_id = models.IntegerField(default=0, unique=False);
review_id = models.IntegerField(default=0, unique=False);
title = models.CharField(max_length=200);
content = models.CharField(max_length=200);
stars = models.DecimalField(max_digits=1, decimal_places=1);
----> object = ReviewsManager
//Trying to use this manager below
---> class ReviewsManager(models.Manager):
def getReviewsByMentorId(self, id):
r = Reviews.objects.filter(mentor_id=id);
return r;
2 ответа
Есть несколько вопросов:
Вы пытаетесь использовать
ReviewsManager
класс, прежде чем он будет определен. Переместите определение класса вверх, чтобы оно было выше вашегоReview
или переместите его в отдельный файл и импортируйте этот файл перед использованием класса.Вы не создаете экземпляр своего класса менеджера. После того, как вы решили первую проблему, это вызовет еще одну ошибку. использование
objects = ReviewsManager()
вместо.Как сказал Прашант, это должно быть
objects
неobject
Пожалуйста измените
----> object = ReviewsManager
в
----> objects = ReviewsManager() ## вы должны использовать объекты
Код должен быть таким:
Отзывы о классе (модели. Модель):
mentor_id = models.IntegerField(по умолчанию =0, уникальный =False);
review_id = models.IntegerField(по умолчанию =0, уникальный =False);
title = models.CharField(max_length=200);
content = models.CharField(max_length=200);
stars = models.DecimalField(max_digits=1, decimal_places=1);
objects = ReviewsManager()class ReviewsManager(models.Manager):
def getReviewsByMentorId(self, id):
r = Reviews.objects.filter(mentor_id=id);
return r;