#django #django-forms #django-class-based-views
Вопрос:
Я пытаюсь преобразовать свою форму, которая изложена в функции, в представление на основе классов:
Вот к чему я должен обратиться.
Функция:
def add_business_plan(request): info = Info.objects.all() if request.method == 'POST': form = infoForm(request.POST) if form.is_valid(): form.save() business_name = form.cleaned_data.get('businessName') info_id = form.instance.id messages.success(request, f'PDF created for {business_name}!, No.({info_id})') return render(request, 'businessplan/businessplan.html', {'form': form, 'successful_submit': True}) else: form = infoForm() print(form.errors) return render(request, 'businessplan/businessplan.html', { 'form': form, 'successful_submit': False, "Info": info } )
вот форма
class infoForm(forms.ModelForm): class Meta: model = Info fields = [ 'businessName', ] widgets = { 'problem_summary': RichTextFormField(), }
Комментарии:
1.
convert my Form which is laid out in a function to be in a class based view
вы должны положить свой forms.py , если вам нужна помощь в этом вопросе .2. Вы хотите преобразовать это
view
вCBV
?
Ответ №1:
Вы можете попробовать следующее:
class AddBusinessPlan(View): template_name = 'businessplan/businessplan.html' form_class = infoForm def get(self, request, *args, **kwargs): form = self.form_class print(form.errors) return render(request, template_name, {'form': form}) def post(self, request, *args, **kwargs): form = self.form_class(request.POST) if form.is_valid(): form.save() business_name = form.cleaned_data.get('businessName') info_id = form.instance.id messages.success(request, f'PDF created for {business_name}!, No.({info_id})') return render(request, self.template_name, {'form': form, 'successful_submit': True}) else: return render(request, self.template_name, {'form': form})