2

最初に、この質問をして申し訳ありません。私は django の新しいユーザーです。そして、モデルだけでプロジェクトをセットアップしました.Model

   ##models.py
    class Task(models.Model):
        Name = models.CharField('Title', max_length=200)
        Notes = models.TextField('Description',max_length=2000, null=True)
        Creator = models.ForeignKey(User, related_name='TaskCreator', null=True, blank=True)
        def __unicode__(self):
            return self.Name

   ##admin.py
   class TaskAdmin(admin.ModelAdmin):
          list_display = ['Name', 'Owner','EstEndTime','LastModifiedTime','Statu']

   admin.site.register(Task,TaskAdmin)

私は自分のサイトに django のデフォルトの管理者を使用しています。自分のテンプレートは使用していません。ユーザーがログインしてタスクを作成しようとすると、現在のユーザーによってクリエーターのデフォルトを設定したいと考えています。しかし、models.Model で現在のユーザーを取得する方法がわかりません。http://chewpichai.blogspot.tw/2007/09/using-user-info-outside-request-in.htmlなど、ネットワークからいくつかの情報を調べましたが、うまくいきません。それで、リクエストなしでmodels.pyファイルで現在のユーザーを取得する方法を誰が教えてくれますか。それは長い間私を悩ませています。誰かが私を助けてくれることを本当に願っています。ありがとう

4

1 に答える 1

7

save_model管理クラスでオーバーライドする必要があります。

   class TaskAdmin(admin.ModelAdmin):
          list_display = ['Name', 'Owner','EstEndTime','LastModifiedTime','Statu']


          def save_model(self, request, task, form, change):
              task.Creator = request.user
              task.save()

ここでそれについて読んでください https://docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contrib.admin.ModelAdmin.save_model

于 2012-11-28T14:06:10.603 に答える