2013-02-16 2 views
0

Может кто-нибудь помочь мне создать пользовательский менеджер, который делает следующее ....с использованием Django пользовательского менеджер

Это просто обучение упражнение для меня, это не реальное приложение, так что я после, как много объяснений насколько это возможно.

1) принимает 2 объекта, его самостоятельно (Person) и профиля

2) делит person.age с profile.dog_years

3) добавляет это модель

Я предполагаю, что сначала создаю пользовательский менеджер на своих моделях.py

class PersonManager(models.Manager): 
    def make_score(self,profile): 

В рамках пользовательского менеджера я затем делаю математику self.age/profile.dog_years.

Тогда некоторые, как вернуть его?

Добавьте его к модели т.е. dogAge = PersonManager()

Результат:

Тогда что я надеюсь, что произойдет в том, что когда я все лица, на мой взгляд возвратного профиль. objects.filter() (как-то пропустите профиль здесь?) у него есть новое поле под названием dogAge с возрастом собаки для всех перечисленных людей.

+0

Хотите изменить список лиц или только один? – Zulu

ответ

1

Это не то, что вы сделали бы в Менеджере. Это работа для обычного метода модели.

Методы менеджера предназначены для вещей, которые каким-либо образом изменяют запрос. Это не то, что вы хотите сделать: вы хотите аннотировать свойство для каждого объекта в наборе запросов. Поскольку это не требует каких-либо дальнейших вычислений базы данных, подходящим местом является модельный метод.

Смежные вопросы