Я создал веб-приложение с Django. По дороге поднялся вопрос, каким образом запросы, получаемые из Formview (и Form), передаются в другие виды, такие как TemplateView. Ниже приведены шаги процесса.
- Пользователь вводит значения (запросы) на странице.
- Значение запроса НЕ сохраняется ни на одной модели.
- Значения запроса вычисляются с использованием алгоритма прогнозирования (своего рода машинного обучения) в app.py
- TemplateView получает рассчитанные значения и отображает его
И ниже приведены мои сценарии
form.py
class ValueForm(forms.Form):
value1=forms.Integer(label='value1',
widget=forms.TextInput(
attrs={'placeholder':'value1','required':True}))
value2=forms.IntegerField(label='value2',
widget=forms.TextInput(
attrs={'placeholder':'value2','required':True}))
value3=forms.Integerield(label='value3',
widget=forms.TextInput(
attrs={'placeholder':'value3','required':True}))
def clean(self):
v1=self.cleaned_data.get('value1')
v2=self.cleaned_data.get('value2')
v3=self.cleaned_data.get('value3')
if v1==None or v2==None or v3==None:
raise form.ValidationError('Sure the enter of Value')
view.py для ввода значения
class ValueEnterView(FormView):
template_name='mysite/value_enter.html'
form_class=ValueForm
success_url=reverse_lazy('mysite:Prediction') #transfer to PredictionDisplayView
def form_valid (self, form):
form.clean()
return super().form_valid(form)
apps.py
def Prediction(v1,v2,v3):
....
....
return predicted_value
view.py для отображения результата прогнозирования
import app
class PredictionDisplayView (TemplateVIew):
template_name='mysite/prediction.html'
def post(self, request):
# I want to get the requests entered in the ValueEnterView.
#But the following script does not work
form=ValueForm(request.POST)
if form.is_valid():
v1=form.cleaned_data['value1']
v2=form.cleaned_data['value2']
v3=form.cleaned_data['value3']
return v1,v2,v3
def calculation(self):
v1,v2,v3=self.post()
return Prediction(v1,v2,v3) #function of apps.py
def get_context_data(self,**kwargs):
context=super().get_context_data(**kwargs)
prediction_value=self.calculation()
context['prediction']=prediction_value
return context
Я думаю, что было бы лучше вызывать проверенные объекты форм (или объекты запросов?) В Templateview, где они передаются алгоритму прогнозирования, но он никогда не работал вообще.
Я надеюсь, что кто-то опытный скажет мне, что не так и как пересмотреть код для получения объектов запроса в Templateview.
Я новичок в создании веб-приложения, извините за наивный вопрос