CreateViewでモデルのユーザー属性にログインユーザーを設定する
formにhiddenでユーザーidを設定しておくのを見たことがあるんですが、それだとhiddenの値を改ざんされる場合があります。
djangoのドキュメントにちゃんとやり方が書いてあって、form_validで行うのが良いようです。
# views.py from django.views.generic.edit import CreateView from myapp.models import Author class AuthorCreate(CreateView): model = Author fields = ['name'] def form_valid(self, form): form.instance.created_by = self.request.user return super(AuthorCreate, self).form_valid(form)
参考 : Django user HiddenInput vs. saving directly in views with Class Based Views - Stack Overflow
参考 : Form handling with class-based views | Django documentation | Django