Tôi có một câu hỏi ở Django về cách bạn có thể so sánh ngày để giải quyết một số giải pháp. Ví dụ tôi có một trường ngày tháng trong models.py của tôi Giống như dưới đây.Sử dụng datetime để so sánh với ngày tháng trong Django
class Invoice(models.Model):
payment_date = models.DateTimeField()
Điều tôi muốn làm là hỏi xem liệu có phải là cách so sánh datetime.now với DateTimeField hay không. Ví dụ, nếu tôi có một danh sách các ngày thanh toán và tôi muốn so sánh với datetime ngay bây giờ. Thau payment_date bị trễ với thanh toán của họ được hiển thị trong thời gian đáo hạn. Nếu không, nó là giá trị bằng không.
Đây là quan điểm của tôi để hiển thị những gì đang diễn ra. Tôi đã thử cho đến nay nhưng tôi nhận được một giá trị 0 cho payment_date của mà là muộn hơn ngày thanh toán.
Chỉnh sửa ở đây là lượt xem mới nhất của tôi. Điều thú vị là tôi dường như đang nhận được owing = invoice_gross cho tất cả các kết quả - không giống như trước đây khi tôi nhận được tất cả 0 giây. Vì vậy, nó vẫn không hoạt động đúng.
@login_required
def homepage(request):
invoices_list = Invoice.objects.all()
invoice_name = invoices_list[0].client_contract_number.client_number.name
invoice_gross = invoices_list[0].invoice_gross
payment_date = invoices_list[0].payment_date
if payment_date <= datetime.now():
owing = invoice_gross
if payment_date > datetime.now():
owing = 0
return render_to_response(('index.html', locals()), {'invoices_list': invoices_list ,'invoice_name':invoice_name, 'invoice_gross':invoice_gross,'payment_date':payment_date,'owing':owing}, context_instance=RequestContext(request))
Oh và bảng của tôi về cơ bản đang làm một cái gì đó như thế này.
ID Owing
1 100 (All the same value)
2 100
3 100
. .
. .
. .
nếu tôi thay đổi "nếu datetime.now> = payment_date: "Tôi nhận được lỗi này không thể so sánh datetime.date với builtin_function_or_method – Shehzad009
' datetime.now' là một hàm, gọi nó bằng 'datetime.now()' – crodjer
Quay lại máy tính của tôi. Nó vẫn không hoạt động đúng. Nhìn vào mã mới nhất. – Shehzad009