Django: добавить поле в ModelForm в CreateVView.form_valid - PullRequest
0 голосов
/ 22 декабря 2011

У меня есть пользователи, создающие списки на моем сайте, и я использую общий CreateView, чтобы позволить им создавать их.Одним из полей списка является владелец (который его создает).

Бессмысленно просить пользователей выбрать владельца, поскольку пользователь, который его создает, уже является владельцем.

Итак, я передаю CreateView "form_class" вместо параметра "model", где form_class исключает поле владельца.

Чтобы сохранить форму, мне нужно добавить владельцак этому.

Я создал подкласс CreateView и добавил метод form_valid, но у меня проблемы с этим.

Пока я получил

class MyCreateView(CreateView)
    form_class = ListForm

def form_valid(self, form):
    form.??? = self.request.user -->> expression of the left side
    return super(MyCreateView, self).form_valid(form)

Это должно быть что-то простое.В этом потоке говорят, что используют self.object.owner, но self.object имеет тип None.

Как мне справиться с этим?Спасибо

1 Ответ

1 голос
/ 22 декабря 2011

Вы ищете form.instance.owner = request.user, а затем позвоните супер

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...