【Django】”__init__() takes 1 positional argument but 2 were given”の対処法。
2022/8/4
2022/12/19
DjangoでAPIを作成していたら"init() takes 1 positional argument but 2 were given"
というエラーが出てしまいました。
その際に解消できた対処法のメモです。
init() takes 1 positional argument but 2 were given
目次
原因のコード
from django.urls import path, include
from .views import ArticleListView
urlpatterns = [
path('articles/', IndexArticles, name='articles'),
]
class ArticleListView(generics.ListAPIView):
queryset = Article.objects.all()
serializer_class = ArticleSerializer
permission_classes = (AllowAny,)
解決法 → urls.pyに.as_view()を記載する
urls.pyのに.as_view()を記載することで解消されました。
from django.urls import path, include
from .views import ArticleListView
urlpatterns = [
path('articles/', IndexArticles.as_view(), name='articles'), # 変更
]
“.as_view()”はどんな時に必要?
ビューには「関数ビュー」と「クラスビュー(class)」の2つがあり、クラスビューの場合は.as_view()の記載が必要なようです。
関数ビュー「.as_view()はいらない」
# 関数ビュー
def IndexView(request):
params = {
...,
}
return render(request, 'pages/index.html', params)
urlpatterns = [
path('/', IndexView, name='index'),
...,
]
クラスビュー「.as_view()が必要」
# クラスビュー
class ArticleListView(generics.ListAPIView):
queryset = Article.objects.all()
serializer_class = ArticleSerializer
permission_classes = (AllowAny,)
urlpatterns = [
path('articles/', IndexArticles.as_view(), name='articles'),
...,
]
まとめ
ビューに「クラスビュー」と「関数ビュー」の2種類あるなんて知りませんでした…。
もっといろいろと触りながら少しずつDjangoの基本を探っていきたいなと思います!
最近の記事
音楽生成AI「Suno」の使い方まとめ!作詞作曲が簡単にできる?
簡単に曲が作れるAIということでよく聞く「Suno(Chirp)」についてまとめました。
目次「Suno」とはテキストからさまざまな音声を生成する「Bark」歌詞から曲を生成する「Chirp」...
2023/11/24
2023/11/24
【Open AI】APIの料金まとめ|GPT・DALL·E・Whisperなど
Open AIのAPI(一部)の料金をまとめました。
参考のために日本円は「1ドル150円」で換算をしています。
目次Text generation: テキスト生成Assistants ...
2023/11/22
2023/11/22
【Next.js】Assistants APIの基本的なコードまとめ。
Open AIの「Assistants API」をNext.jsで使用する時の基本的なコードをまとめました。
目次Open AIのAPIセットアップ基本の使い方Threads: スレッドを作る...
2023/11/21
2023/11/21
【Next.js】Open AIのAPIでファイルをアップロードする方法。
今回は、Next.jsサイトからOpen AIのAPI(Upload file)で、ファイルをアップロードする方法を実装するのに時間がかかったのでその過程と最終コードをまとめます。(Vercelにデ...
2023/11/21
2023/11/22
「生成系AIのWEBプロダクトTOP50」をまとめてみる。
Andreessen Horowitzが出している記事で紹介されている「AIプロダクトの月間訪問者数ランキングTOP50」のサービスをまとめました。
目次ChatGPTcharacter.ai...
2023/10/3
2023/10/3
【Next.js 13】NextAuth+FireStoreにユーザー情報を保存する。
今回は、以下の3つをNext.js 13で実装するためのメモです。
Googleアカウントでログインできる
アカウント、セッション情報をFirestoreに保存する
サーバーサイ...
2023/7/12
2023/7/12