質問事項
初歩的な質問です。
python3、django2でアプリケーション作成中にformで画面が遷移せず。
エラーは出ていません。htmlで送信ボタンを作成して押しているのですが、反応しません。
プロジェクト名book、アプリケーション名recommendです。
以下が作成したファイルです。
updateとaddの両方出ます。adminサイトではできます。
どなたかご教授お願い致します。
book/urls.py
from django.contrib import admin from django.urls import path, include from django.conf import settings from django.conf.urls.static import static urlpatterns = [ path('admin/', admin.site.urls), path('', include('recommend.urls')) ] if settings.DEBUG: urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
recommend/urls.py
python3
1from django.urls import path 2from . import views 3 4app_name = 'recommend' 5 6urlpatterns =[ 7 path('', views.IndexView.as_view(), name='index'), 8 path('add/', views.AddView.as_view(), name='add'), 9 path('update/<int:pk>', views.UpdateView.as_view(), name='update'), 10 path('detail/<int:pk>', views.DetailView.as_view(), name='detail'), 11] 12
models.py
from django.db import models from django.utils import timezone class Genre(models.Model): name = models.CharField('ジャンル名', max_length=30) created_at = models.DateTimeField('日付', default=timezone.now) def __str__(self): return self.name class Relation(models.Model): name = models.CharField('ジャンル名', max_length=30) created_at = models.DateTimeField('日付', default=timezone.now) def __str__(self): return self.name class Book(models.Model): title = models.CharField('タイトル', max_length=50) author = models.CharField('著者', max_length=50) text = models.TextField('簡単な説明') genre = models.ForeignKey(Genre, verbose_name='ジャンル', on_delete=models.PROTECT, blank=True) relation = models.ManyToManyField(Relation, verbose_name='関連項目', blank=True) thumbnails = models.ImageField('画像', upload_to='thumbnails/', null=True, blank=True) created_at = models.DateTimeField('日付', default=timezone.now) def __str__(self): return self.title
views.py
from django.views import generic from django.urls import reverse_lazy from .models import Book from .forms import BookRecommendForm class IndexView(generic.ListView): model = Book paginate_by = 10 class AddView(generic.CreateView): model = Book form_class = BookRecommendForm success_url = reverse_lazy('recommend:index') class UpdateView(generic.UpdateView): model = Book form_class = BookRecommendForm success_url = reverse_lazy('recommend:index') class DetailView(generic.DetailView): model = Book
forms.py
from django import forms from .models import Book class BookRecommendForm(forms.ModelForm): class Meta: model = Book fields = '__all__'
book_form.html
{% extends 'recommend/base.html'%} {% block content %} <form action="" method="POST" enctype="multipart/form-data" class="mt-5"> <table class="table"> <tr> <th>タイトル</th> <td>{{form.title}}</td> </tr> <tr> <th>著者</th> <td>{{form.author}}</td> </tr> <tr> <th>簡単な説明</th> <td>{{form.text}}</td> </tr> <tr> <th>ジャンル</th> <td>{{form.genre}}</td> </tr> <tr> <th>関連項目</th> <td>{{form.relation}}</td> </tr> <tr> <th>画像</th> <td>{{form.thumbnails}}</td> </tr> </table> <p>一度登録すると削除はできません。</p> {% csrf_token%} <button type="submit" class="btn btn-primary">送信</button> </form> {% endblock %}
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。