前提・実現したいこと
djangoで、学習サービスを作っています。レッスンに、カテゴリを紐付ける機能を実装するため、カテゴリの一覧と新規作成画面を実装しようとしていたところ、下記のエラーが発生いたしました。
発生している問題・エラーメッセージ
Generic detail view Category_ListAndCreateView must be called with either an object pk or a slug in the URLconf.
該当のソースコード
python
1# views.py 2class Category_ListView(PermissionRequiredMixin, LoginRequiredMixin, generic.ListView): 3 model = Category 4 fields = ['name'] 5 paginate_by = 30 6 success_url = reverse_lazy('excercise:category_list_and_create') 7 template_name = 'category/list_and_create.html' 8 permission_required = 'excercises.rules_add_category' 9 10 11class Category_ListAndCreateView(ModelFormMixin, Category_ListView): 12 model = Category 13 form_class = CategoryCreateForm 14 15 def get(self, request, *args, **kwargs): 16 self.object = None 17 return super().get(request, *args, **kwargs) 18 19 def post(self, request, *args, **kwargs): 20 self.object = None 21 self.object_list = self.get_queryset() 22 form = self.get_form() 23 if form.is_valid(): 24 return self.form_valid(form) 25 else: 26 return self.form_invalid(form) 27
python
1#forms.py 2class CategoryCreateForm(forms.ModelForm): 3 class Meta: 4 model = Category 5 fields = ('name',)
python
1urls.py 2 path('category/', views.Category_ListAndCreateView.as_view(), name='category_list_and_create'), 3
python
1# models.py 2class Category(models.Model): 3 name = models.CharField('カテゴリ名', max_length=30) 4 5 def __str__(self): 6 return self.name 7 8 def get_latest_post(self): 9 result = Excercise.objects.filter( 10 category=self).order_by('-created_at')[:5] 11 return result 12
試したこと
https://torina.top/detail/337/
こちらのページを参考にさせていただきました。
ListViewを継承しているのですが、DetailViewにはpk ga必要、というエラーの対応がわからず、苦慮しています。
ModelFromMixinが原因の気がするのですが、調べてもたどり着けませんでした。
補足情報(FW/ツールのバージョンなど)
Django Version: 2.1.4
Python Version: 3.7.2
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/02/11 01:13
2019/02/11 01:13 編集