Объект 'function' не имеет атрибута 'objects' в django

я получаю ошибку: AttributeError at /. Объект 'function' не имеет атрибута 'objects' Метод запроса: GET URL запроса: http://127.0.0.1:8000/ Версия Django: 3.2.5 Тип исключения: AttributeError Значение исключения:
Объект 'function' не имеет атрибута 'objects' Exception Location: G:\PYTHON DJANGO 2021 - COMPLETE COURSE\first_django_project\devsearch\project\views.py, строка 27, in projects Python Executable: C:\ProgramData\Anaconda3\envs\djangoenv\python.exe Версия Python: 3.9.6 Python Path:
['G:\PYTHON DJANGO 2021 - COMPLETE COURSE\first_django_project\devsearch', 'C:\ProgramData\Anaconda3\envs\djangoenv\python39.zip', 'C:\ProgramData\Anaconda3\envs\djangoenv\DLLs', 'C:\ProgramData\Anaconda3\envs\djangoenv\lib', 'C:\ProgramData\Anaconda3\envs\djangoenv', 'C:\ProgramData\Anaconda3\envs\djangoenv\lib\site-packages']. Время сервера: Sat, 21 Aug 2021 13:18:04 +0000

# models.py
from django.db import models
import uuid


# Create your models here.
class Project(models.Model):
    title = models.CharField(max_length=200)
    description = models.TextField(null=True,blank=True)
    demo_link = models.CharField(max_length=2000,null=True,blank=True)
    source_link = models.CharField(max_length=2000,null=True,blank=True)
    tag = models.ManyToManyField('Tag',blank=True)
    vote_total = models.IntegerField(default=0,null=True,blank=True)
    vote_ratio = models.IntegerField(default=0,null=True,blank=True)
    created_on = models.DateTimeField(auto_now_add=True)
    id = models.UUIDField(default=uuid.uuid4,unique=True,primary_key=True,editable=False)
    
    def __str__(self):
        return self.title


# views.py
from django.shortcuts import render
from .models import Project


# Create your views here.
def projects(requests):
    projects = Project.objects.all()
    return render(requests,"project/projects.html", {'projects':projects})

попробуйте перенести базу данных

python manage.py makemigrations
python manage.py migrate

Вероятно, вы определили функцию в представлении с именем Project, в результате ссылка на модель Project изменяется на функцию представления.

Вы можете определить имя функции представления в нижнем регистре, так project вместо Project, и таким образом реализовать это как:

from django.shortcuts import render
from .models import Project

# Create your views here.
def projects(requests):
    projects = Project.objects.all()
    return render(requests, 'project/projects.html', {'projects':projects})

# project instead of Project
def project(request, pk):
    # …
Вернуться на верх