Представление на основе классов django — UpdateView — Как получить доступ к пользователю запроса при обработке формы?

В UpdateView на основе классов в Django я исключаю пользовательское поле, поскольку оно является внутренним для системы, и я не буду запрашивать его. Теперь, каков правильный способ передачи Django пользователя в форму. (Как я это делаю сейчас, я передаю пользователя в initформы, а затем переопределяю метод формы save(). Но я уверен, что есть правильный способ сделать это. Что-то вроде скрытое поле или что-то в этом роде

# models.py
class Entry(models.Model):
    user = models.ForeignKey(
                User,
                related_name="%(class)s",
                null=False
    )

    name = models.CharField(
                blank=False, 
                max_length=58,
    )

    is_active = models.BooleanField(default=False)

    class Meta:
        ordering = ['name',]

    def __unicode__(self):
        return u'%s' % self.name

# forms.py
class EntryForm(forms.ModelForm):
    class Meta:
        model = Entry
        exclude = ('user',)

# views.py
class UpdateEntry(UpdateView):
    model = Entry
    form_class = EntryForm
    template_name = "entry/entry_update.html"
    success_url = reverse_lazy('entry_update')

    @method_decorator(login_required)
    def dispatch(self, *args, **kwargs):
        return super(UpdateEntry, self).dispatch(*args, **kwargs)

# urls.py
url(r'^entry/edit/(?P<pk>\d+)/$',
    UpdateEntry.as_view(),
    name='entry_update'
),
8
задан Joel Aufrecht 27 July 2014 в 23:50
поделиться