在http://blog.csdn.net/thinkinside/article/details/7231372这篇教程中给出了这样的程序:
# in views.py
def store_view(request):
products = Product.objects.filter(date_available__gt = datetime.datetime.now().date()) \
.order_by("-date_available")
t = get_template('depotapp/store.html')
c = RequestContext(request,locals())
cart = request.session.get("cart",None)
return HttpResponse(t.render(c))
# in urls.py
(r'store/$', store_view),
产品有上架时间(在http://blog.csdn.net/thinkinside/article/details/7231103):
# in models.py
class Product(models.Model):
title = models.CharField(max_length=100,unique=True)
description = models.TextField()
image_url = models.URLField(max_length=200)
price = models.DecimalField(max_digits=8,decimal_places=2)
date_available = models.DateField()
教程效果是让这个时间(上架时间)之后的产品才能被买方看到。并且买方应该先看到最新的产品。比如今天是2013.04.21,一个产品标记为2013.04.20上架,一个产品标记为2013.04.19上架。那么就应该能在买方页面看到它们,而且19号那个排在20号那个之前。
但是我做出的效果除了排序没有问题外,却刚好相反。我的买方页面上只能看到将来(比如标记为2013.05.01、2013.06.01)上架的产品,和预期效果恰恰相反。
是什么地方出了问题呢?
【2013.04.22】
WTF,我竟然把__lt和__gt搞错了。