Как правильно оформить models.py для БД квадратного уравнения
Мне нужно сделать сайт на Django в котором можно будет решать квадратное уравнение. Пользователь просто вводит три числа, я их принимаю, и могу высчитать сами корни, но вот как вывести результат - совсем не понимаю.
models.py:
from django.db import models
class Quadratics(models.Model):
a = models.IntegerField('Введите коэффициент а')
b = models.IntegerField('Введите коэффициент b')
c = models.IntegerField('Введите коэффициент c')
# roots = models.TextField(default='') # здесь я пробовал сделать пустое поле,
# что бы в views.py сменить значение на высчитанное
def __str__(self):
return f"{self.a}, {self.b}, {self.c}"
views.py:
from django.shortcuts import render
from .models import Quadratics
from .forms import QuadraticsForm
def getRoots(a, b, c):
from cmath import sqrt
a, b, c = float(a), float(b), float(c)
d = pow(b, 2) - (4 * a * c)
return (-b - sqrt(d)) / (2 * a), (-b + sqrt(d)) / (2 * a)
def quadratic(request):
error = ''
if request.method == 'POST':
form = QuadraticsForm(request.POST)
coefs = form.data['a'], form.data['b'], form.data['c']
roots = getRoots(*coefs)
context = {
'form': form,
'error': error,
'roots': roots,
}
if form.is_valid():
form.save()
form = QuadraticsForm()
return render(request, 'quadratic/quadratic.html', context)
# def newton(request):
# return render(request, 'quadratic_equation/newton.html')
html файл:
{% extends 'main/base.html' %}
{% block title %}
Розв'язування квадратного рівняння
{% endblock %}
{% block content %}
<h1>Розв'язування квадратного рівняння</h1>
<h2>
<div class="verybigtext align="left">ax<sup>2</sup> + bx + c = 0</div>
</h2>
<form method="post">
{% csrf_token %}
<h5>a:{{ form.a }}</h5>
<h5>b:{{ form.b }}</h5>
<h5>c:{{ form.c }}</h5>
<button type="submit" class="btn btn-success">Порахувати</button>
<span>{{ error }}</span>
<div>
<label>Корінь рівняння: {{ form.roots }}</label>
{{ form.roots }}
</div>
</form>
<!-- </main></h1>
<p style="text-align:left; font-size:27px">Історія:</p>
{% for el in equations %}
<div class="alert alert-warning mt-2">
<h3>{{ el.a }}</h3>
<p>{{ el.roots }}</p>
</div>
{% endfor %} -->
{% endblock %}
Главный вопрос: как правильно посчитать и вывести на сайт результат.
