Py学习  »  问与答

新手在学习Django实战系列教程中遇到的一个问题

易冷天涯 • 11 年前 • 3994 次点击  

在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搞错了。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/54
 
3994 次点击  
文章 [ 1 ]  |  最新文章 11 年前
Py站长
Reply   •   1 楼
Py站长    11 年前
date_available__gt = datetime.datetime.now().date()

这里是比当前时间晚的能看到吧