formを表示させたいです。
views.pyに
class ContributionCreateView(CreateView): template_name = 'input.html' def post(self, request, *args, **kwargs): form = ContributionCreateForm(request.POST) post = Contribution.objects.get(pk=kwargs['pk']) if form.is_valid(): obj = form.save(commit=False) obj.target = post obj.save() return redirect('top', pk=post.pk)
と書き、urls.pyに
from django.contrib import admin from django.urls import path from app.views import UserListView,ContributionListView,ContributionDetailView,ContributionCreateView from . import views urlpatterns = [ path('',ContributionListView.as_view(template_name='top.html'),name="top"), path('<int:pk>',ContributionListView.as_view(),name="index"), path('contribution',ContributionCreateView.as_view(), name='contribution') ]
と書き、forms.pyに
class ContributionCreateForm(forms.ModelForm): class Meta: model = Contribution fields = ('title', 'summary') def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.fields['title'].widget.attrs['class'] = 'form-control' self.fields['summary'].widget.attrs['class'] = 'form-control'
とコードを書きました。
この実装を実行すると、
ImproperlyConfigured at /app/contribution
ContributionCreateView is missing a QuerySet. Define ContributionCreateView.model, ContributionCreateView.queryset, or override ContributionCreateView.get_queryset().
とエラーが出ました。formを2こ用意して、投稿できるようにしたいのですが、どうすればいいのでしょうか?どう直せばいいのでしょうか?
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。