簡體   English   中英

在Django中,為什么我的數據庫管理器會失敗?

[英]In Django, Why does my database manager fail?

我是第一次學習經理。 我試圖弄清楚如何正確設置這些管理器。 看來管理器的理念與SQL View相似。

這是我的經理和班級:

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()進行搜索,並且我認為這應該可以清除您的錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM