Python 为什么我会得到;键入对象';关于';没有属性';对象'&引用;
我是Django的新手,我正在制作一个搜索栏,我在views.py中添加了逻辑,它抛出了一个错误“type object”关于“has no attribute‘objects’”,我不明白为什么Python 为什么我会得到;键入对象';关于';没有属性';对象'&引用;,python,django,python-3.x,Python,Django,Python 3.x,我是Django的新手,我正在制作一个搜索栏,我在views.py中添加了逻辑,它抛出了一个错误“type object”关于“has no attribute‘objects’”,我不明白为什么 from django.views.generic import TemplateView, ListView, DetailView from .models import About #views class Home(ListView): """docstring for Home
from django.views.generic import TemplateView, ListView, DetailView
from .models import About
#views
class Home(ListView):
"""docstring for Home"""
template_name = 'home.html'
model = About
recents = About.objects.all()
context_object_name = 'recents'
class BiographyDetail(DetailView):
"""docstring for BiographyDetail"""
model = About
template_name = 'details.html'
class About(TemplateView):
"""docstring for BiographyDetail"""
template_name = 'about.html'
model = About
class Contacts(TemplateView):
"""docstring for BiographyDetail"""
template_name = 'contact.html'
model = About
class Projects(TemplateView):
"""docstring for BiographyDetail"""
template_name = 'projects.html'
model = About
class Search(ListView):
"""docstring for BiographyDetail"""
template_name = 'search.html'
model = About
def get_queryset(self): # new
query = self.request.GET.get('search')
searches = About.objects.filter(
Q(name__icontains=query)
)
return searches
这是我的models.py文件夹
#models.py
from django.db import models
from django.utils import timezone
import datetime
# Create your models here.
TYPE = (
('politician','POLITICIAN'),
('poet','POET'),
('author','AUTHOR'),
('actor','ACTOR'),
)
class About(models.Model):
name = models.CharField(max_length = 200, default ='')
quote = models.CharField(max_length = 200, default ='')
born = models.DateField(verbose_name = 'Born on', null = True)
born_at = models.CharField(max_length = 200, default ='')
died = models.DateField(verbose_name = 'Born on', null = True)
died_at = models.CharField(max_length = 200, default ='')
main = models.TextField(default='')
category = models.CharField(choices = TYPE, default = 'poet', max_length = 10)
image = models.ImageField(blank = True, default='',upload_to = 'static')
created_on = models.DateTimeField(auto_now_add = True)
updated_on = models.DateTimeField(auto_now = True)
def __str__(self):
return self.name
def was_published_recently(self):
return self.created_on >=timezone.now() - datetime.timedelta(days=15)
我做错了什么,请帮帮我你的
类关于(models.Model):
和类关于(TemplateView):
您没有将导入内容粘贴到文件中,但我很确定您的主页中的关于
和搜索
类使用的是您的关于
视图,而不是您的关于
模型
我建议您重命名一些东西(About
->AboutView
),这样您就不会有完全相同的类名。这应该会让事情变得更加明显,这样你就可以知道发生了什么。你的类关于(models.Model):
和类关于(TemplateView):
您没有将导入内容粘贴到文件中,但我很确定您的主页中的关于
和搜索
类使用的是您的关于
视图,而不是您的关于
模型
我建议您重命名一些东西(About
->AboutView
),这样您就不会有完全相同的类名。这会让事情变得更加明显,这样你就可以知道发生了什么。你希望.objects
做什么?没有任何具有该名称的类变量。您也将视图命名为About
,因此它将采用该名称。请在视图中使用view
后缀。每个视图都有一个模型看起来也很奇怪。模型不应用于视图。模型应该使某些数据持久化。您希望.objects做什么?没有任何具有该名称的类变量。您也将视图命名为About,因此它将采用该名称。请在视图中使用view
后缀。每个视图都有一个模型看起来也很奇怪。模型不应用于视图。模型应该使某些数据持久化。