170 похожих чатов

Доброго дня. Есть такая форма, использующаяся в CBV, наследующем от

views.generic.CreateView:

class CreateServicesAdForm(forms.ModelForm):
class Meta:
model = models.ServiceAdvert
exclude = ["seller"]

Где seller - это поле в модели ServiceAdvert, внешний ключ на прокси-модель для User. Подразумевается, что seller будет подтягиваться из request.user, а при рендере формы отображаться не будет. Пробовал во вьюхе переопределить get_initial, подставляя request.user туда, но похоже, что раз это поле в форме исключено - то и в initial оно игнорируется. Если в Meta заменить exclude = ["seller"] на fields = "__all__" и указать seller = forms.HiddenInput(), то поле выводится как dropdown (хотя по идее должно бы выводиться как <input type="hidden">). Конечная цель - не давать юзеру возможность выбрать значение поля seller, а заполнять его автоматически, основываясь на request.user. Что я делаю не так, и куда с этим можно копнуть?

9 ответов

21 просмотр

Привет, привету пример как у меня реализован Хидден инпут

class LoginForm(forms.Form): d_width = forms.CharField(required=False) d_height = forms.CharField(required=False) def init(self, *args, **kwargs): super(LoginForm, self).init(*args, **kwargs) self.fields['d_width'].widget = forms.HiddenInput() self.fields['d_height'].widget = forms.HiddenInput()

в Шаблоне всё просто {% for field in form %} {{ field }} {% endfor %}

malorin-K. Автор вопроса

Интересно. Выходит, что если просто в описании формы вписать field_name = forms.HiddenInput(), то оно его игнорирует? х)

if form.is_valid(): obj = form.save(commit=False) obj.seller = request.user obj.save()

ну хз) давно с этим мучался, где-то нарыл такое решение, что нужно пихать в Виджет)

Немного поправлю def form_valid(self, form): obj = form.save(commit=False) obj.seller = self.request.user obj.save()

malorin-K. Автор вопроса

Ага, вот это больше похоже на то, что мне нужно. Огромное спасибо!

ну да, логичнее решать это на Беке) у меня лиш решение с ХидденИнпутом)

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта