Значение, соответствующее запросу, не существует

Я начинающий пользователь Django. Недавно я столкнулся с проблемой: когда я пытаюсь получить объекты, он говорит

DoesNotExist: Value matching query does not exist.

Я искал в Интернете, но так и не понял, почему это происходит.

Мой 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)

Мой дом.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')
     ]

Есть ли что-то, что я упускаю или что-то не так? Вы можете указать на это?

проблема находится внутри вашего файла forms.py попробуйте следующее

from django import forms
from .models import Value

class ViewForm(forms.ModelForm):
    class Meta:
        model = Value
        fields = ['eq_input','color']

и если вы хотите добавить метку

class Value(models.Model):

    eq_input = models.CharField(max_length=20,verbose_name='Equation', default='x**2 + y**2')
    color = models.CharField(max_length=20,verbose_name='Color' ,default='Magma')

после этого не забудьте запустить makemigrations и migrate.

Вернуться на верх