Форум сайта python.su
Как реализовать автоматическое заполнение скрытого поля формы “user = текущий авторизированный пользователь”?
model
user = models.ForeignKey(User,verbose_name='Пользователь')
class ZipForm(ModelForm): class Meta: model = Zip model.subcategory fields = ('__all__')
Офлайн
Вам нужно чтобы автоматически выбирался текущий пользователь с возможностью выбора другого или чтобы выбора не было вообще?
Если первый вариант - у класса FormView есть метод get_initial
Если второй вариант - уберите поле user у формы, и если user нужен в форме - передавайте в конструктор параметром
Отредактировано svas (Июль 24, 2015 08:52:18)
Офлайн
svas
Вам нужно чтобы автоматически выбирался текущий пользователь с возможностью выбора другого или чтобы выбора не было вообще?Если первый вариант - у класса FormView есть метод get_initialЕсли второй вариант - уберите поле user у формы, и если user нужен в форме - передавайте в конструктор параметром
Офлайн
Дак а что нужно-то? Первый вариант или второй?
Офлайн
svas2й вариант.
Дак а что нужно-то? Первый вариант или второй?
Офлайн
Примерно так:
class Form(forms.Form): def __init__(self, *args, **kwargs): self.user = kwargs.pop('user') super(Form, self).__init__(*args, **kwargs) class MyFormView(FormView): form_class = Form def get_form_kwargs(self): kwargs = super(MyFormView, self).get_form_kwargs() kwargs['user'] = self.request.user return kwargs
dezinfoМожно в документации посмотреть
Может есть пример как это использовать? Не могу понять как с FormView работать.
Офлайн
svas
Можно в документации посмотреть
https://docs.djangoproject.com/en/1.8/topics/class-based-views/
конкретно про FormView здесь https://docs.djangoproject.com/en/1.8/topics/class-based-views/generic-editing/
args['username'] =auth.get_user(request).username return render_to_response('addadvert.html', args)
Офлайн