我是第一次学习管理者。 我正试图找出如何正确设置这些经理。看来,管理者在哲学上与SQL视图类似
这是我的经理和班级:
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。我错过了什么? 谢谢
您上面粘贴的代码是正确的,在复制和粘贴后对我有效
在代码的其他地方,您将它列为属性,我相信
Subscription.objects.lifer
而不是方法Subscription.objects.lifer()
进行搜索,我相信这会清除您的错误相关问题 更多 >
编程相关推荐