Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么我会得到;键入对象';关于';没有属性';对象'&引用;_Python_Django_Python 3.x - Fatal编程技术网

Python 为什么我会得到;键入对象';关于';没有属性';对象'&引用;

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

我是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"""
    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
后缀。每个视图都有一个模型看起来也很奇怪。模型不应用于视图。模型应该使某些数据持久化。