本棚アプリケーションの作成【4-11】
データを更新する仕組みを作っていく
UpdateViewを作成していきます。
bookproject/book/urls.py
from . import views
urlpatterns = [
path('book/', views.ListBookView.as_view(), name='list-book'),
path('book/<int:pk>/detail/', views.DetailBookView.as_view(),
name='detail-book'),
name='detail-book'),
path('book/create/', views.CreateBookView.as_view(), name='create-book'),
path('book/<int:pk>/delete/', views.DeleteBookView.as_view(),
name='delete-book')
name='delete-book')
]
を
from . import views
urlpatterns = [
path('book/', views.ListBookView.as_view(), name='list-book'),
path('book/<int:pk>/detail/', views.DetailBookView.as_view(),name='detail-book'),
path('book/create/', views.CreateBookView.as_view(), name='create-book'),
path('book/<int:pk>/delete/', views.DeleteBookView.as_view(),name='delete-book'),
path('book/<int:pk>/update/', views.UpdateBookView.as_view(),name='update-book')
]
に編集。
bookproject/book/views.py
from .models import Book
class ListBookView(ListView):
template_name = 'book/book_list.html'
model = Book
class DetailBookView(DetailView):
template_name = 'book/book_detail.html'
model = Book
class CreateBookView(CreateView):
template_name = 'book/book_create.html'
model = Book
fields = ('title','text','category')
success_url = reverse_lazy('list-book')
class DeleteBookView(DeleteView):
template_name = 'book/book_confirm_delete.html'
model = Book
success_url = reverse_lazy('list-book')
を
from .models import Book
class ListBookView(ListView):
template_name = 'book/book_list.html'
model = Book
class DetailBookView(DetailView):
template_name = 'book/book_detail.html'
model = Book
class CreateBookView(CreateView):
template_name = 'book/book_create.html'
model = Book
fields = ('title','text','category')
success_url = reverse_lazy('list-book')
class DeleteBookView(DeleteView):
template_name = 'book/book_confirm_delete.html'
model = Book
success_url = reverse_lazy('list-book')
class UpdateBookView(UpdateView):
model = Book
fields = (['title','text','category'])
template_name = 'book/book_update.html'
success_url = reverse_lazy('list-book')
に編集。
book_update.htmlファイルを作成します
(venv) $ touch book/templates/book/book_update.html
bookproject/book/templates/book/book_update.html
{% extends 'base.html' %}
{% block title %}書籍修正{% endblock %}
{% block content %}
{{ form.as_p }}
<button type="submit">修正する</button>
</form>
{% endblock %}
これでそれぞれのviewを作成することができました。