From aae37f18b2fda1447e00d1ab40ae6a4386123a9a Mon Sep 17 00:00:00 2001 From: Vadym Vynokur Date: Fri, 23 Jan 2026 14:41:52 +0200 Subject: [PATCH 1/4] fix: change borrow date auto_now_add -> default=timezone.now --- library/models.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/library/models.py b/library/models.py index 944cffb..466e7a0 100644 --- a/library/models.py +++ b/library/models.py @@ -1,6 +1,7 @@ from django.contrib.auth import get_user_model from django.db import models from django.db.models import Q, F +from django.utils import timezone from django.utils.translation import gettext_lazy as _ @@ -24,7 +25,7 @@ def __str__(self): class Borrowing(models.Model): - borrow_date = models.DateField(auto_now_add=True) + borrow_date = models.DateField(default=timezone.now) expected_return_date = models.DateField() actual_return_date = models.DateField(null=True, blank=True) From ce824ac72f682d764043a5e96a95bb0eb684cc1a Mon Sep 17 00:00:00 2001 From: Vadym Vynokur Date: Fri, 23 Jan 2026 14:45:42 +0200 Subject: [PATCH 2/4] fix: timezone.now().date() instead of localdate() --- library/serializers.py | 2 +- library/views.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/library/serializers.py b/library/serializers.py index a4df28c..fcbbbba 100644 --- a/library/serializers.py +++ b/library/serializers.py @@ -45,7 +45,7 @@ class Meta: read_only_fields = ("id",) def validate_expected_return_date(self, value): - today = timezone.localdate() + today = timezone.now().date() if value < today: raise serializers.ValidationError( "Expected return date cannot be " "earlier than today." diff --git a/library/views.py b/library/views.py index 517b7c7..806d396 100644 --- a/library/views.py +++ b/library/views.py @@ -118,7 +118,7 @@ def return_book(self, request, pk=None): status=status.HTTP_400_BAD_REQUEST, ) - borrowing.actual_return_date = timezone.localdate() + borrowing.actual_return_date = timezone.now().date() borrowing.save(update_fields=["actual_return_date"]) Book.objects.filter(pk=borrowing.book_id).update( From b601303e56b64af2f8e4126b7f299b7da7c0e279 Mon Sep 17 00:00:00 2001 From: Vadym Vynokur Date: Fri, 23 Jan 2026 14:50:00 +0200 Subject: [PATCH 3/4] fix: DRY --- library/serializers.py | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) diff --git a/library/serializers.py b/library/serializers.py index fcbbbba..b90ec4d 100644 --- a/library/serializers.py +++ b/library/serializers.py @@ -6,26 +6,13 @@ class BookSerializer(serializers.ModelSerializer): - class Meta: - model = Book - fields = ( - "id", - "title", - "author", - "cover", - "inventory", - "daily_fee", - ) - - -class BookDetailSerializer(serializers.ModelSerializer): class Meta: model = Book fields = ("id", "title", "author", "cover", "inventory", "daily_fee") class BorrowingReadSerializer(serializers.ModelSerializer): - book = BookDetailSerializer(read_only=True) + book = BookSerializer(read_only=True) class Meta: model = Borrowing From e246a369b8f1a9e7435864c099b38d8fd4f2683a Mon Sep 17 00:00:00 2001 From: Vadym Vynokur Date: Fri, 23 Jan 2026 17:42:20 +0200 Subject: [PATCH 4/4] fix: tests --- library/models.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/models.py b/library/models.py index 466e7a0..3aa2deb 100644 --- a/library/models.py +++ b/library/models.py @@ -25,7 +25,7 @@ def __str__(self): class Borrowing(models.Model): - borrow_date = models.DateField(default=timezone.now) + borrow_date = models.DateField(default=timezone.now().date()) expected_return_date = models.DateField() actual_return_date = models.DateField(null=True, blank=True)