Passar o usuário atual para a inicial do CreateView no Django

No meu projeto eu tenhoUser modelo do padrãoauth Modelo Django e oTodo modelo. O usuário pode ter muitos Todo.

Quando o usuário conectado cria um todo, ele deve ser atribuído ao todo automaticamente. Eu quero passar o usuário atual para os dados iniciais doCreateView. Parece-me que estou no caminho certo. É assim que o objeto do formulário se parece:

class TodoView(CreateView):
  model = Todo
  fields = ('name', 'date')

  success_url = '/todos/'

  def get_initial(self):
    return {
      'user': self.request.user
    }

E este é um modelo:

class Todo(models.Model):
  user = models.ForeignKey(User)
  name = models.TextField()
  date = models.DateField()

Mas parece que isso não é suficiente, porque eu tenho uma exceção quando os dados válidos vão do lado do cliente. Esta é a exceção:

IntegrityError at /todos/new

todos_todo.user_id may not be NULL

Request Method:     POST
Request URL:    http://localhost:8000/todos/new
Django Version:     1.6.2
Exception Type:     IntegrityError
Exception Value:    

todos_todo.user_id may not be NULL

Exception Location:     /Library/Python/2.7/site-packages/django/db/backends/sqlite3/base.py in execute, line 450
Python Executable:  /usr/bin/python
Python Version:     2.7.5

É possível, de maneira alguma, passar o usuário atual para o modelo doCreateView? Como fazê-lo nas melhores práticas no Django?

questionAnswers(1)

yourAnswerToTheQuestion