我正在尝试为我的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就会运行SPARCALC函数,收集输入的信息,执行数学运算并收集总数,然后将总数发送到新页面。相反,它似乎只是在刷新页面
也可以运行这种风格的代码而不为其创建整个类吗?这不是我想要存储的信息。理想情况下,我只希望它在运行时执行并使用它来完成,但以前尝试这样做的尝试都失败了,我只是放弃并尝试创建一个类
据我所知,它已正确地输入到我的urlpatterns中
from catalog.views import (
SparkCalc,
sparkCalcPage,
)
urlpatterns = [
path('SparkCalc/', sparkCalcPage),
path('SparkResults/', SparkCalc),
]
任何帮助都将不胜感激,并提前感谢您的帮助
render
函数的签名如下:在本例中,您将
{'total':total}
传递给了content_type
关键字参数,而不是context
此外,您还需要将数据提交到相应的视图
而不是为任务创建模型, 在views.py自身中执行该操作
相关问题 更多 >
编程相关推荐