class Meta:
model = Places
fields = ['user', 'latitude', 'longitude', 'name', 'comment']
user автоматически выбирался как id того кто авторизован и заполняет форму, через инициализатор ?
(в данный момент там выпадает список юзеров)
class какаятотамвьюхадляформы(какиетотампредки): def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) if self.request.POST: получаем и валидируем данные из формы else: context['form'].initial['user'] = self.request.user добавляем в контекст форму return context как-то так если вкратце
спсибо, class AddPostForm(forms.ModelForm): # def init(self, *args, **kwargs): # super().init(*args, **kwargs) # user = self.request.user # self.fields['user'] = self.request.user class Meta: model = Places fields = ['user', 'latitude', 'longitude', 'name', 'comment'] хотел как-то так прикрутить, но ошибка была, попробую по твоему методу)
покрутил, обмозговал, Я правильно понял что это делается в классе представления который связан с формой? т.е мы изначально в def get_context_data() должны заполнить user ? в моем случае он выглядит так: class AddPost(LoginRequiredMixin, DataMixin, CreateView): form_class = AddPostForm template_name = 'visited/addpost.html' success_url = reverse_lazy('home') def get_context_data(self, *, object_list=None, **kwargs): context = super().get_context_data(**kwargs) c_def = self.get_user_context(title='Добавить воспоминания') return dict(list(context.items()) + list(c_def.items()))
Обсуждают сегодня