我有我的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;没有定义。我根本没有看到任何问题。我的代码出了什么问题?感谢。
答案 0 :(得分:1)
问题在于:
books = Borrowing.objects.filter(dueDate < today_date)
你做错了filtering。 filter
参数应为field lookups,而不仅仅是比较甚至是lambda函数。它应该是
books = Borrowing.objects.filter(dueDate__lt=today_date)
请参阅field lookups文档,了解详细信息的原因和方法,以及其他选项。