Я создаю свое первое приложение в Django, и у меня возникают проблемы с условным циклом. Я хочу создать форму, в которой пользователи будут вводить свое имя, размер семьи и доход, и он будет рассчитывать, где они окажутся по скользящей шкале (A, B, C или Overqualify), основываясь на их доходе. Я ожидаю, что он выведет одну шкалу (A, B, C или Overqualify), но она продолжает циклически повторяться - так что я получаю:
Что я получаю
Если кто-то может помочь мне или указать мне какие-либо ресурсы, потому что я только начал изучать python и django, так что я очень застрял.
Спасибо!
models.py
from django.db import models
# Create your models here.
class SlidingScale(models.Model):
scale = models.CharField(max_length=1)
family_size = models.IntegerField()
min_annual = models.IntegerField(default = 0)
max_annual = models.IntegerField()
def __str__(self):
return self.scale
forms.py
from django import forms
class SlidingForm(forms.Form):
name = forms.CharField(max_length = 100)
household = forms.IntegerField()
income = forms.IntegerField()
views.py
from django.shortcuts import render
from django.template.response import TemplateResponse
from .models import SlidingScale
from .forms import SlidingForm
# Create your views here. def index(request):
return render(request, 'index.html', {})
def calculator(request):
if request.method == "POST":
#Get the posted form
form = SlidingForm(request.POST)
data = SlidingScale.objects.all()
if form.is_valid():
name = form.cleaned_data['name']
household = form.cleaned_data['household']
income = form.cleaned_data['income']
else:
form = SlidingForm()
return render(request, 'result.html', {"name" : name, "household": household, "income":income, "data": data})
result.html
{% extends 'base.html' %}
<!--start title -->
{% block title%}
Result
{% endblock %}
<!-- start body -->
{% block content%}
<strong>{{ name }}</strong>, based on your income of <strong>{{income}}</strong> and household size of
<strong>{{household}}</strong>,
{% for i in data %}
{% if i.family_size == household and income >= i.min_annual and income <= i.max_annual %}
<p> You qualify for: {{ i.scale }} </p>
{% else %}
<p> You overqualify </p>
{% endif %}
{% endfor %}
{% endblock %}