質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

受付中

django でListView とCreateViewを同一画面で表示したい。

Junichi_A
Junichi_A

総合スコア0

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

1回答

0評価

0クリップ

16閲覧

投稿2019/02/10 12:09

前提・実現したいこと

djangoで、学習サービスを作っています。レッスンに、カテゴリを紐付ける機能を実装するため、カテゴリの一覧と新規作成画面を実装しようとしていたところ、下記のエラーが発生いたしました。

発生している問題・エラーメッセージ

Generic detail view Category_ListAndCreateView must be called with either an object pk or a slug in the URLconf.

該当のソースコード

python

# views.py class Category_ListView(PermissionRequiredMixin, LoginRequiredMixin, generic.ListView): model = Category fields = ['name'] paginate_by = 30 success_url = reverse_lazy('excercise:category_list_and_create') template_name = 'category/list_and_create.html' permission_required = 'excercises.rules_add_category' class Category_ListAndCreateView(ModelFormMixin, Category_ListView): model = Category form_class = CategoryCreateForm def get(self, request, *args, **kwargs): self.object = None return super().get(request, *args, **kwargs) def post(self, request, *args, **kwargs): self.object = None self.object_list = self.get_queryset() form = self.get_form() if form.is_valid(): return self.form_valid(form) else: return self.form_invalid(form)

python

#forms.py class CategoryCreateForm(forms.ModelForm): class Meta: model = Category fields = ('name',)

python

urls.py path('category/', views.Category_ListAndCreateView.as_view(), name='category_list_and_create'),

python

# models.py class Category(models.Model): name = models.CharField('カテゴリ名', max_length=30) def __str__(self): return self.name def get_latest_post(self): result = Excercise.objects.filter( category=self).order_by('-created_at')[:5] return result

試したこと

https://torina.top/detail/337/
こちらのページを参考にさせていただきました。
ListViewを継承しているのですが、DetailViewにはpk ga必要、というエラーの対応がわからず、苦慮しています。
ModelFromMixinが原因の気がするのですが、調べてもたどり着けませんでした。

補足情報(FW/ツールのバージョンなど)

Django Version: 2.1.4
Python Version: 3.7.2

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。