Help us understand the problem. What is going on with this article?

DjangoのViewでデータを追加する時 Error:save() missing 1 required positional argument: 'self'

More than 1 year has passed since last update.

DjangoのViewでデータを追加する時、例えばフォームから入力してデータを追加するのではなく、
View上でDjangoモデルに直接データを追加したい時がある。

これをやろうとした時に
少し詰まったのでメモしておく。

下のコードにあるように、FavoriteというDjangoモデルにuserとfavoriteのフィールドがあり、
そこにLikeしたユーザとその投稿の記事を紐づけたい時、初めはFav=Favoriteとしていた為、
エラーが生じていた。修正案としてFav=Favorite()としてインスタンスを引き渡すと無事に解決出来た。

qiita.rb
def like(request):
    Fav = Favorite()
    Fav.user = request.user
    Fav.favorite = post
    Fav.save()

また、こちらの記事にも
同じような事が記載されている。
https://stackoverflow.com/questions/46907511/typeerror-save-missing-1-required-positional-argument-self

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away