首页 > 解决方案 > 值匹配查询不存在

问题描述

我是 Django 的初学者。我最近遇到了一个问题:当我尝试获取对象时,它在说

DoesNotExist: Value matching query does not exist.

我搜索了网络,但仍然不知道为什么会发生这种情况。

我的模型.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')

我的表格.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'
     }

我的观点.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')
     ]

我有什么遗漏或有什么问题吗?你能指出来吗?

标签: pythondjango

解决方案


问题出在你的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。


推荐阅读