2015-09-27 3 views
1

Я изучаю менеджеров в первый раз. Я пытаюсь выяснить, как правильно настроить этих менеджеров. Похоже, что менеджеры похожи в философии как SQL View.В Django Почему мой менеджер баз данных не работает?

Вот мой менеджер и класс:

class SubscriptionManager(models.Manager): 

    def active_officers(self): 
     officers = self.get_queryset().filter(Modified__gte=datetime.now()-timedelta(days=365)).filter(Subscription_Type='O') 
     return officers 

    def lifer(self): 
     return self.get_queryset().filter(Lifetime=True) 

class Subscription(models.Model): 
    SType = (
     ('C', 'Civilian'), 
     ('E', 'Enlisted'), 
     ('O', 'Officer'), 
    ) 
    Subscription_Type = models.CharField(max_length=1, choices=SType) 
    Lifetime = models.BooleanField(default=False) 
    Member = models.ForeignKey(Member) 
    Modified = models.DateField() 

    objects = SubscriptionManager() 

    def __str__(self): 
     return self.Member.first_name + " " + self.Member.last_name + ": " + self.Subscription_Type + "; last modified: " + self.Modified.strftime('%Y-%m-%d') 

После установки я все еще может выполнить Subscription.objects.all() без проблем, бушель, если я выпалить Subscription.objects.lifer(), я получаю следующее сообщение об ошибке: AttributeError: 'Manager' object has no attribute 'lifer'

Я в python 3.4. Что мне не хватает? Спасибо

+0

Хм это должно было сработать, и я просто копировал и вставлял его, и он работает для меня – awwester

ответ

0

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

В другом месте в вашем коде вы указали его как атрибут. Я считаю, что Subscription.objects.lifer вместо метода Subscription.objects.lifer() Дайте этот поиск, и я верю, что это должно очистить вашу ошибку.

+0

, где бы я выглядел как атрибут? Я закончил класс и попытался выполнить команду. Я не знаю, где искать. – arcee123

+0

Я понял. Я использую pycharm, и у меня на консоли python не было правильно импортированных функций. Я перезапустил консоль, и они выстрелили прямо. – arcee123