Я пытаюсь создать код для своего Django сайта, который будет принимать вводимые пользователем данные, выполнять вычисления, а затем отправлять данные обратно пользователю в виде новой страницы, однако каждый раз, когда я запускаю код, он не создает новую страницу и не публикует результаты.
Ниже представлена сама функция.
def SparkCalc(request):
new_item = sparkCalculator()
new_item.tix = request.POST['tix']
new_item.tenrolls = request.POST['tenrolls']
new_item.crystals = request.POST['crystals']
new_item.save()
total = new_item.getTotal()
return render(request, 'SparkResults.html', {"title": "Spark Results"}, {"total": total})
, а ниже - страница Django, с которой я вызываю ее:
<form action="/SparkCalc/" method="POST">{% csrf_token %}
<label for ="tix">Please enter your single roll tickets</label>
<input type="text" id="tix" name="tix"/>
<label for ="tenrolls">Please enter your ten-roll tickets</label>
<input type="text" id="tenrolls" name="tenrolls"/>
<label for ="tix">Please enter your total crystal amount</label>
<input type="text" id="crystals"name="crystals"/>
<input type="submit" value="Get Results"/>
</form>
И, наконец, ниже - класс, который я создал:
class sparkCalculator(models.Model):
tix = models.PositiveIntegerField()
tenrolls = models.PositiveIntegerField()
crystals = models.PositiveIntegerField()
def getTotal(self):
return (int(self.tix)*300) + (int(self.tenrolls)* 3000) + int(self.crystals)
Я предполагаю, что код будет работать так: как только пользователь вводит свою информацию в форму, Django затем запускает функцию SparcCal c, собирая введенную информацию, выполняя математические вычисления и собирая итог, а затем отправляя результат на новую страницу. Вместо этого кажется, что страница просто обновляется.
Также возможно ли запустить этот стиль кода, не создавая для него целый класс? Это не та информация, которую я хотел бы хранить. В идеале я бы просто хотел, чтобы он выполнялся во время выполнения и покончил с ним, но предыдущие попытки сделать это не увенчались успехом, и я просто сдался и попытался создать класс.
Насколько я могу судить, это правильно введены в мои шаблоны URL.
from catalog.views import (
SparkCalc,
sparkCalcPage,
)
urlpatterns = [
path('SparkCalc/', sparkCalcPage),
path('SparkResults/', SparkCalc),
]
Любая помощь будет принята с благодарностью и заранее благодарим вас за вашу помощь.