From: Sven Arnold Date: Mon, 8 Feb 2016 18:15:00 +0000 (+0100) Subject: Add verview of persons X-Git-Url: https://git.internetallee.de/?a=commitdiff_plain;h=89aaf6f44bc84f5079013014b030087dff88842d;p=urtebook.git Add verview of persons --- diff --git a/project/books/models.py b/project/books/models.py index ef16a0f..0abba86 100644 --- a/project/books/models.py +++ b/project/books/models.py @@ -5,8 +5,14 @@ class Book(models.Model): def __str__(self): return self.title +class Person(models.Model): + name = models.CharField(max_length = 200) + def __str__(self): + return self.name + class Lease(models.Model): book = models.ForeignKey(Book, on_delete=models.CASCADE) - leasee = models.CharField(max_length = 200) + leasee = models.ForeignKey(Person, on_delete=models.CASCADE) def __str__(self): return "%s (%s)" % (self.book, self.leasee) + diff --git a/project/books/templates/books/index.html b/project/books/templates/books/index.html index f1cb109..6a5a740 100644 --- a/project/books/templates/books/index.html +++ b/project/books/templates/books/index.html @@ -1,3 +1,5 @@ +Personen +
{% if book_list %}
diff --git a/project/books/templates/books/persons.html b/project/books/templates/books/persons.html new file mode 100644 index 0000000..5943315 --- /dev/null +++ b/project/books/templates/books/persons.html @@ -0,0 +1,18 @@ +Bücher +
+{% if person_list %} + +{% else %} + Keine Personen eingetragen. +{% endif %} +
diff --git a/project/books/urls.py b/project/books/urls.py index a55716b..4ef1012 100644 --- a/project/books/urls.py +++ b/project/books/urls.py @@ -7,4 +7,5 @@ urlpatterns = [ url(r'^(?P\d+)$', views.detail, name="detail"), url(r'^(?P\d+)/lease$', views.lease_book, name="lease_book"), url(r'^lease/(?P\d+)/return$', views.return_book, name="return_book"), + url(r'^persons$', views.PersonIndexView.as_view(), name='persons') ] diff --git a/project/books/views.py b/project/books/views.py index 2a8b689..687beac 100644 --- a/project/books/views.py +++ b/project/books/views.py @@ -1,8 +1,9 @@ from django.shortcuts import render from django.core.urlresolvers import reverse from django.http import HttpResponse, HttpResponseRedirect +from django.views import generic -from books.models import Book, Lease +from books.models import Book, Lease, Person def index(request): try: @@ -28,10 +29,20 @@ def return_book(request, lease_id): def lease_book(request, book_id): book = Book.objects.get(pk = book_id) try: - leasee = request.POST['leasee'] + leasee_name = request.POST['leasee'] + leasee, new_person = Person.objects.get_or_create(name=leasee_name) + if new_person: + leasee.save() lease = Lease(book = book, leasee = leasee) lease.save() return HttpResponseRedirect(reverse('index')) except KeyError: return render(request, 'books/lease.html', {'book': book}) + +class PersonIndexView(generic.ListView): + template_name = 'books/persons.html' + context_object_name = 'person_list' + + def get_queryset(self): + return Person.objects.order_by('name')[:10]