Django:日期比较和定义

时间:2014-03-27 07:43:32

标签: django web

我有我的views.py

def overdue(request):
    logged_in = request.user.is_authenticated()
    if not logged_in:
        return redirect('/sign_in')
    username = request.user.get_username()
    type = UserProfile.objects.get(username = username).type
    if type != 1:
        return redirect('/rule')

    today_date = date.today()
    books = Borrowing.objects.filter(dueDate < today_date)


    return render(request, 'books/clerk/overdue.html', {'logged_in':logged_in, 'username':username, 'type':type, 'books':books})

在我的models.py中,我有

class Borrowing(models.Model):
        bid = models.ForeignKey('Borrower')
        callNumber = models.ForeignKey('Book')
        copyNo = models.ForeignKey('BookCopy')
        outDate = models.DateField(auto_now_add=True)
        inDate = models.DateField(null = True)
        dueDate = models.DateField()

但是,当我运行代码时,我收到一条错误消息,指出NameError,全局名称&#39; dueDate&#39;没有定义。我根本没有看到任何问题。我的代码出了什么问题?感谢。

1 个答案:

答案 0 :(得分:1)

问题在于:

books = Borrowing.objects.filter(dueDate < today_date)

你做错了filteringfilter参数应为field lookups,而不仅仅是比较甚至是lambda函数。它应该是

books = Borrowing.objects.filter(dueDate__lt=today_date) 

请参阅field lookups文档,了解详细信息的原因和方法,以及其他选项。