Django не сохраняет данные в базу данных
У меня есть очень базовые знания о Django, но столкнувшись с проблемой, она привела меня в полное замешательство.
Я пытаюсь создать 3D плоттер. Все отображается правильно, но когда я нажимаю Submit, он никогда не сохраняется в базе данных, кроме указанного default value, которое я предоставил.
Мой models.py
from django.db import models
class Value(models.Model):
eq_input = models.CharField(max_length=20, default='x**2 + y**2')
color = models.CharField(max_length=20, default='Magma')
Мой forms.py
from django import forms
from .models import Value
class ViewForm(forms.ModelForm):
Equation = forms.CharField(max_length=20, label='Equation')
Color = forms.CharField(max_length=20,label='Color')
class Meta:
model = Value
fields = {
'Equation',
'Color'
}
Мой views.py
from django.shortcuts import render
from django.http import HttpResponse
from .models import Value
from .forms import ViewForm
def home_view(request):
if request.method == "POST":
form = ViewForm(request.POST)
if form.is_valid():
form.save()
else:
form = ViewForm()
context = {
'form': form
}
return render(request, "home.html", context)
Мой home.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>3D Graph Plotter</title>
</head>
<body>
<center><h1>This is a 3D plotter</h1></center>
<center>
<form action="." method="POST">{% csrf_token %}
{{ form.as_p }}
<input type="submit" name="Save" />
</form>
</center>
</body>
</html>
и мой urls.py
from django.contrib import admin
from django.urls import path, include
from equation.views import eq, home_view
urlpatterns = [
path('admin/', admin.site.urls),
path('', home_view, name='hv')
]
Можете ли вы указать мне на проблему?
Поместите {{ form.errors }} {{ form.non_field_errors }}
в ваш home.html
и посмотрите, есть ли ошибки в данных, которые temp постит в представление. Возможно, данные не действительны, слишком общий пароль или что-то еще.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>3D Graph Plotter</title>
</head>
<body>
<center><h1>This is a 3D plotter</h1></center>
<center>
<form action="." method="POST">{% csrf_token %}
{{ form.as_p }}
{{ form.errors }}
{{ form.non_field_errors }}
<input type="submit" name="Save" />
</form>
</center>
</body>
</html>