为什么我得到模型 DoesNotExist 但服务器能够显示它?

Why do I get model DoesNotExist but server is able to display it?

我不明白错误的Traceback,但是Server是运行fine(0个问题),我从 view.py 获得了我需要的所有数据。似乎必须使用 get() 方法...

DoesNotExist: matching query does not exist

这是我用的models

from django.contrib.auth.models import AbstractUser
from django.db import models


class User(AbstractUser):
    id = models.AutoField(primary_key=True)
    name = models.CharField(max_length=64, blank=True)
    image = models.ImageField(upload_to="portraits", blank=True, default="default.jpg")

    def __str__(self):
        return f"{self.username}"


class Category(models.Model):
    id = models.AutoField(primary_key=True)
    name = models.CharField(max_length=64)
    description = models.CharField(max_length=255, blank=True)

    def __str__(self):
        return f"{self.name}"


class Item(models.Model):
    id = models.AutoField(primary_key=True)
    owner = models.ForeignKey(User, on_delete=models.CASCADE, related_name="inventory")
    name = models.CharField(max_length=64)
    description = models.CharField(max_length=255)
    image = models.ImageField(blank=True, default="Megamind.jpg")
    starting_bid = models.PositiveIntegerField(default=0)
    category = models.ForeignKey(Category, on_delete=models.CASCADE, default="1", related_name="stuff")
    active = models.BooleanField(default=True)
    favorited = models.ManyToManyField(User, blank=True, related_name="favorites")

    def __str__(self):
        return f"{self.name} of {self.owner}"

和相关的 view.py 文件

def index(request):
    auctions = Item.objects.filter(active=True)
    context = {'auctions':auctions, 'title':'Active Listings'}
    return render(request, "auctions/index.html", context)


def category_view(request, category):
    category = category.capitalize()
    category_obj = Category.objects.get(name=category)
    category_id = category_obj.id
    items = Item.objects.filter(category=category_id, active=True)
    context = {'auctions':items, 'title':category}
    return render(request, "auctions/index.html", context)

如果有帮助: 我从 urls.py 转为 str

path("<str:category>", views.category_view, name="category")

查看回溯,/favicon.ico 请求时出现错误。现代浏览器会自动询问 favico。

你可以做类似的事情来避免这个错误:

 url(r'^favicon\.ico$',RedirectView.as_view(url='/static/images/favicon.ico')),

正如@Sharpek 正确提到的那样,错误是由 /favicon.ico 请求引起的,显然来自浏览器。修复它的最简单方法是将其添加到您的 base.html 模板到 head 标签中:

{% load static %} <!-- If it wasn't already used -->

<link rel="shortcut icon" type="image/png" href="{% static 'favicon.ico' %}"/>

然后,如果您的 STATIC_ROOT 中没有 favicon.ico,您将遇到 404 错误。否则,您将得到 200.