Advertisement
py_tourist

Untitled

Feb 19th, 2021
164
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.86 KB | None | 0 0
  1. #model
  2. class BookInstance(models.Model):
  3.     id = models.UUIDField(primary_key=True,
  4.                           default=uuid.uuid4,
  5.                           help_text="Unique ID for this particular book across whole library")
  6.  
  7.     book: Book = models.ForeignKey(Book, on_delete=models.SET_NULL, null=True)
  8.     imprint = models.CharField(max_length=200)
  9.     LOAN_STATUS = (
  10.         ("m", "Maintenance"),
  11.         ("o", "On loan"),
  12.         ("a", "Available"),
  13.         ("r", "Reserved"),
  14.     )
  15.     status = models.CharField(max_length=1, choices=LOAN_STATUS, blank=True, default="m",
  16.                               help_text='Book availability')
  17.     due_back = models.DateField(null=True, blank=True)
  18.     borrower = models.ForeignKey(User, on_delete=models.SET_NULL, null=True, blank=True)
  19.  
  20.     class Meta:
  21.         ordering = ["due_back"]
  22.         permissions = (("see_all_borrowed_books", "See all borrowed books"),)
  23.  
  24.     def __str__(self):
  25.         return f"{self.id} ({self.book.title})"
  26.  
  27.     def display_book(self):
  28.         return f"{self.book.title}"
  29.  
  30.     @property
  31.     def is_overdue(self):
  32.         if self.due_back and date.today() > self.due_back:
  33.             return True
  34.         else:
  35.             return False
  36. #view
  37. class LoanedBooksForLibrarianListView(PermissionRequiredMixin, generic.ListView):
  38.     model = BookInstance
  39.     template_name = "catalog/bookinstance_list_borrowed_user.html"
  40.     paginate_by = 10
  41.  
  42.     def get_queryset(self):
  43.         return BookInstance.objects.filter(status__exact="o").order_by("due_back")
  44.  
  45.     permission_required = 'see_all_borrowed_books'
  46.  
  47. #через шаблонизатор проверку проходит, ссылка у юзера с праввами есть, у юзера без прав нет
  48. {% if perms.catalog.see_all_borrowed_books %}
  49.     <li><a href="{% url 'borrowed' %}">All Borrowed</a></li>
  50. {% endif %}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement