我是第一次學習經理。 我想弄清楚如何正確設置這些管理器。看起來管理者在哲學上與SQL視圖相似。在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中。我錯過了什麼? 謝謝
嗯,這應該工作,我只是複製並粘貼它,它適用於我 – awwester