Я новичок в Django, использую Django 2.7.1 и python 3.7.2, пытаюсь сделать что-то, что будет принимать данные из полевых форм на моем сайте, затем обрабатывать эти данные и, наконец, отображать результат в другом поля формы на той же странице.
Я пытался сделать это методами модели, но не понял как.
Теперь я пытаюсь сделать это по взглядам. Я понял, что должен делать, но все еще не понимал, как отобразить результат.
это мои models.py
from django.db import models
# Create your models here.
class CombinatorCols(models.Model):
first_column = models.TextField("Column 1", null=True, blank=True)
second_column = models.TextField("Column 2", null=True, blank=True)
third_column = models.TextField("Column 3", null=True, blank=True)
fourth_column = models.TextField("Column 4", null=True, blank=True)
result = models.TextField("Result", help_text='Halo', blank=True,)
def __str__(self):
return self.first_column
это мой forms.py
from django import forms
from .models import CombinatorCols
class CombinatorForm(forms.ModelForm):
class Meta:
model = CombinatorCols
fields = ('first_column', 'second_column', 'third_column','fourth_column', 'result',)
это мои views.py
from django.shortcuts import render, redirect
from django.http import HttpResponse
from django.template import loader
from .models import Combinate,CombinatorCols
from .forms import CombinatorForm,ResultForm
# Create your views here.
def get_col(request):
#column = get_object_or_404(CombinatorCols)
if request.method == "POST":
form = CombinatorForm(request.POST)
if form.is_valid():
column = form.save()
column.sender = request.user
first_handle = [i for i in column.first_column.split('\n') if i]
second_handle = column.second_column
third_handle = column.third_column
fourth_handle = column.fourth_column
column.result = first_handle
column.save()
print(first_handle)
print('Naiiiceee')
else:
form = CombinatorForm()
return render(request, 'index.html', {'form': form})
и последнее, мой index.html
<form action="" method="post">
{% csrf_token %}
{{ form.as_table }}
<input type="submit" value="Submit">
</form>
Я ожидаю обновления формы 'result' на моем сайте, но я вижу только исходную страницу. Все, что было написано в полях формы, остается на своих местах и отправляет в БД. Это все ожидаемое поведение, за исключением того, что поле результата не обновляется. Печать выписок показывает корректно.