【发布时间】:2019-10-12 08:18:07
【问题描述】:
我正在尝试将数据从我的 views.py 获取到数据库。如果views.py代码是这样的
views.py
from django.shortcuts import render
from .models import Questions
def home(request):
choices = Questions.CAT_CHOICES
print(choices)
return render(request,
'quiz/home.html',
{'choices':choices})
def questions(request , choice):
print(choice)
ques = Questions.objects.filter(catagory__exact = choice)
return render(request,
'quiz/questions.html',
{'ques':ques})
def result(request):
print("result page")
if request.method == 'POST':
data = request.POST
datas = dict(data)
qid = []
qans = []
ans = []
score = 0
for key in datas:
try:
qid.append(int(key))
qans.append(datas[key][0])
except:
print("Csrf")
for q in qid:
ans.append((Questions.objects.get(id = q)).answer)
total = len(ans)
for i in range(total):
if ans[i] == qans[i]:
score += 1
# print(qid)
# print(qans)
# print(ans)
print(score)
eff = (score/total)*100
return render(request,
'quiz/result.html',
{'score':score,
'eff':eff,
'total':total})
def about(request):
return render(request,
'quiz/about.html')
def contact(request):
return render(request,
'quiz/contact.html')
models.py
class Questions(models.Model):
CAT_CHOICES = (
('sports','Sports'),
('movies','Movies'),
('maths','Maths'),
('generalknowledge','GeneralKnowledge')
)
question = models.CharField(max_length = 250)
optiona = models.CharField(max_length = 100)
optionb = models.CharField(max_length = 100)
optionc = models.CharField(max_length = 100)
optiond = models.CharField(max_length = 100)
answer = models.CharField(max_length = 100)
catagory = models.CharField(max_length=20, choices = CAT_CHOICES)
class Meta:
ordering = ('-catagory',)
def __str__(self):
return self.question
results.html
{% extends "base.html" %}
{% block title%}
Result
{% endblock %}
{% block content%}
<div class="row">
<div class="col-xs-12">
<h3 class="center">
Your Score is: {{ score }} / {{ total }}
</h3>
</div>
</div>
<div class="row">
<div class="col-xs-12">
<h3 class="center"
{% if eff < 50.0 %} style="color:red"
{% else %} style="color:green"
{% endif %}
>
Your Efficiency is: {{ eff }} %
</h3>
</div>
</div>
{% endblock%}
我想在数据库中创建一个表来存储结果。这是一个 django-quiz 应用程序。我想创建单独的表来将结果存储在 postgresql 中。
我正在使用 django 来创建一个测验应用程序,但结果的计算存储在 views.py 中,但我想在 postgresql 中创建一个数据库并修改 models.py 以运行迁移。请帮忙
【问题讨论】:
-
你不能从你的代码创建一个表并运行迁移,你可以做什么来创建一个表来存储结果数据并通过在该表中保存数据来创建行
标签: python django django-models django-templates