From 5a5eefa13489f5d6c74029fd8529f693ac983134 Mon Sep 17 00:00:00 2001 From: Gabriel Augendre Date: Mon, 21 May 2018 22:23:53 +0200 Subject: [PATCH] Display book form --- manuels/forms.py | 9 +++++++++ manuels/models.py | 2 +- manuels/templates/manuels/add_book.html | 11 +++++++++++ manuels/views.py | 24 +++++++++++++++++++++--- 4 files changed, 42 insertions(+), 4 deletions(-) diff --git a/manuels/forms.py b/manuels/forms.py index e69de29..d62297a 100644 --- a/manuels/forms.py +++ b/manuels/forms.py @@ -0,0 +1,9 @@ +from django import forms + +from manuels.models import Book, Teacher + + +class AddBookForm(forms.ModelForm): + class Meta: + model = Book + fields = '__all__' diff --git a/manuels/models.py b/manuels/models.py index ad6fa3e..5b99660 100644 --- a/manuels/models.py +++ b/manuels/models.py @@ -48,4 +48,4 @@ class Book(models.Model): publication_year = models.PositiveIntegerField('année de publication') isbn = models.TextField('ISBN/EAN', validators=[isbn_validator]) price = models.PositiveIntegerField('prix') - previously_acquired = models.BooleanField("manuel acquis précédemment par l'élève") + previously_acquired = models.BooleanField("manuel acquis précédemment par l'élève", blank=True) diff --git a/manuels/templates/manuels/add_book.html b/manuels/templates/manuels/add_book.html index cef75ab..232afc1 100644 --- a/manuels/templates/manuels/add_book.html +++ b/manuels/templates/manuels/add_book.html @@ -10,4 +10,15 @@ Bienvenue {{ teacher.full_name }} +
+
+
+ {% csrf_token %} + {% bootstrap_form form %} + {% buttons %} + + {% endbuttons %} +
+
+
{% endblock %} \ No newline at end of file diff --git a/manuels/views.py b/manuels/views.py index f5e0e47..18bb258 100644 --- a/manuels/views.py +++ b/manuels/views.py @@ -1,7 +1,8 @@ from django.shortcuts import get_object_or_404 from django.views.generic import CreateView, FormView, TemplateView -from manuels.models import Teacher +from manuels.forms import AddBookForm +from manuels.models import Teacher, Book class HomePageView(CreateView): @@ -10,11 +11,28 @@ class HomePageView(CreateView): template_name = 'manuels/home_page.html' -class AddBookView(TemplateView): +class AddBookView(CreateView): + model = Book template_name = 'manuels/add_book.html' + form_class = AddBookForm + teacher = None + + def dispatch(self, request, *args, **kwargs): + self.teacher = get_object_or_404(Teacher, pk=self.kwargs['id']) + return super().dispatch(request, *args, **kwargs) def get_context_data(self, **kwargs): context = super().get_context_data() - context['teacher'] = get_object_or_404(Teacher, pk=self.kwargs['id']) + context['teacher'] = self.teacher return context + + def get_initial(self): + return { + 'teacher': self.teacher + } + + def get_form(self, form_class=None): + form = super().get_form(form_class) + form.fields['teacher'].queryset = Teacher.objects.filter(pk=self.teacher.pk) + return form