Files
training.django/source/orm/library/models/loan.py
Steve Kossouho e3ebf6bf4f Add documentation and source
Added documentation, source and extra files.
2025-07-02 20:26:50 +02:00

30 lines
990 B
Python

from uuid import uuid4
from django.db import models
class Loan(models.Model):
"""
Model for book loans.
"""
uuid = models.UUIDField(default=uuid4, db_index=True, verbose_name="UUID")
person = models.ForeignKey("library.Person", on_delete=models.CASCADE, related_name="loans", verbose_name="person")
book = models.ForeignKey("library.Book", on_delete=models.CASCADE, related_name="loans", verbose_name="book")
date = models.DateTimeField(auto_now_add=True, verbose_name="date")
expected_return = models.DateTimeField(null=True, verbose_name="expected return date")
borrowed = models.BooleanField(null=True, default=True, verbose_name="borrowed")
class Meta:
verbose_name = "book loan"
verbose_name_plural = "book loans"
unique_together = [("book", "borrowed")]
def __str__(self):
return f"Book loan: {self.person}{self.book}"
def return_book(self):
self.borrowed = None
self.save()