我有一个具有VIP成员资格结束时间的Post模型。我想计算活跃会员。
我的模特:
class Post(models.Model):
title = models.CharField(max_length=250,verbose_name ='Başlık')
image = models.ImageField(upload_to=upload_location, null=True, blank=True,verbose_name ='Vitrin Fotoğrafı')
vip = models.BooleanField(default=False,verbose_name ='Vip')
phone = models.CharField(max_length=11,verbose_name ='Telefon')
vipend = models.DateTimeField(auto_now=False,auto_now_add=False,null=True,blank=True,verbose_name ='Vip Bitiş')
我的观点:
def yonetim(request):
endvipcount = Post.objects.fiter(vip=True,vipend<datetime.now()).count() # This part is obviously wrong #
context = {
"endvipcount": endvipcount ,
}
return render(request, "yonetici.html", context)
错误:
endvipcount = Post.objects.fiter(vip=True, vipend < datetime.now()).count()
^
SyntaxError: invalid syntax
我想要主动和被动VIP会员计数。理想的做法是什么?
答案 0 :(得分:8)
对于使用WHERE
子句的SQL查询,您应该使用Django字段查找(请参阅文档链接)
您可以使用__lt
:
Post.objects.fiter(vip=True, vipend__lt=datetime.now()).count()
这表示vip字段为true并且vipend字段小于now()
的所有Post对象。
如果要忽略字段的时间部分,也可以使用__date__lt
。