セッションのユーザーをモデルのsave()メソッドにプルしようとしています。 The docs for HttpRequestと私が見つけたすべての例では、オブジェクトがインスタンス化されていると仮定していますが、インスタンス化を行うメソッドを見つけることはできません。Django 1.9のcreated_byフィールドの現在のユーザーを取得するにはどうすればよいですか?
私はHttpRequest.user
を使用するべきだと思っていますが、私は実際にそれを行うことができるように私のモデルでインスタンスを生成する方法を知らない。
これは私のsave()オーバーライドです。それはtype object 'HttpRequest' has no attribute 'user'
を生成しますが、これはクラスではなく、本当に驚くべきことではないオブジェクト参照で考える:あなたがいる場合
def save(self, *args, **kwargs):
''' On save, update timestamps '''
if not hasattr(self, 'id'):
self.date_created = timezone.now()
self.created_by = HttpRequest.user
self.last_updated_date = timezone.now()
self.last_updated_by = HttpRequest.user
super(Caregiver, self).save(*args, **kwargs)
views.pyは、より多くの情報
class CaregiverCreateView(CreateView):
template_name = 'single_form_generic.html'
model = Caregiver
form_class = CaregiverCreateForm
私はクラスベースのビューを使用しています。どのように私はそれを追加しますか?わかりやすく私の質問にviews.pyを追加しました。 – meteorainer
私はこの方法を使用しませんでしたが、私は答えにつながったので+1しました。 – meteorainer
クール。あなたの答えを見つけてうれしいです。私は第二の見方で取りました。あなたがしようとしているような音は、クラスベースのビューで 'form_valid'メソッドをオーバーライドすることによって完全に達成できます。 –