【发布时间】:2021-08-02 22:29:46
【问题描述】:
你好,我是 django 的新手,我正在创建一个博客站点,当我尝试访问我的博客时出现错误 我的代码: 视图.py:
from django.http import request
from django.shortcuts import render
from django.views.generic.list import ListView
from django.views.generic.detail import DetailView
from .models import Item, Blog
# Create your views here.
class BlogView(ListView):
model = Blog
template_name = "main/blog.html"
context_object_name = "blog"
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
search_input = self.request.GET.get('search') or ''
if search_input:
context['blog'] = context['blog'].filter(title__icontains=search_input)
return context
class Detail(DetailView):
model = Item
template_name = "main/item.html"
context_object_name = "items"
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
obj = Item.objects.get()
context['items'] = Item.objects.filter(blog_id=obj.blog_id)
return context
models.py:
from django.db import models
# Create your models here.
class Blog(models.Model):
title = models.CharField(max_length=200)
image = models.ImageField(null=True, blank=True)
created = models.DateField(auto_now_add=True, null=True)
def __str__(self):
return self.title
class Meta:
ordering = ['created']
@property
def imageURL(self):
try:
url = self.image.url
except:
url = ""
return url
class Item(models.Model):
title = models.CharField(max_length=200)
description = models.TextField(max_length=1000)
image = models.ImageField(null=True, blank=True)
blog = models.ForeignKey(Blog, on_delete=models.CASCADE)
def __str__(self):
return self.title
@property
def imageURL(self):
try:
url = self.image.url
except:
url = ""
return url
任何关于此错误的帮助将不胜感激:
MultipleObjectsReturned at /detail/2/
get() returned more than one Item -- it returned 2!
Request Method: GET
Request URL: http://127.0.0.1:5000/detail/2/
Django Version: 3.2
Exception Type: MultipleObjectsReturned
Exception Value:
get() returned more than one Item -- it returned 2!
Exception Location: /home/moeez/.local/lib/python3.8/site-packages/django/db/models/query.py, line 439, in get
Python Executable: /usr/bin/python3
Python Version: 3.8.5
Python Path:
['/home/moeez/Python Projects/blogsite',
'/usr/lib/python38.zip',
'/usr/lib/python3.8',
'/usr/lib/python3.8/lib-dynload',
'/home/moeez/.local/lib/python3.8/site-packages',
'/usr/local/lib/python3.8/dist-packages',
'/usr/local/lib/python3.8/dist-packages/buildozer-1.2.0.dev0-py3.8.egg',
'/usr/local/lib/python3.8/dist-packages/virtualenv-20.4.3-py3.8.egg',
'/usr/local/lib/python3.8/dist-packages/sh-1.14.1-py3.8.egg',
'/usr/local/lib/python3.8/dist-packages/filelock-3.0.12-py3.8.egg',
'/usr/local/lib/python3.8/dist-packages/distlib-0.3.1-py3.8.egg',
'/usr/local/lib/python3.8/dist-packages/appdirs-1.4.4-py3.8.egg',
'/usr/lib/python3/dist-packages']
Server time: Wed, 12 May 2021 14:31:09 +0000
【问题讨论】:
标签: python html python-3.x django