Django报错:'function' object has no attribute 'objects' 求助
AttributeError: 'function' object has no attribute 'objects' in Django
你的错误根源在于models.py的缩进错误,导致data模型没有被Django正确识别,进而在视图中data被解析为函数而非模型类。结合你提供的代码,具体问题和修正方案如下:
问题1:models.py缩进错误
class Meta和def __str__没有嵌套在data类内部,而是作为全局类/函数存在,这会导致Django无法为模型初始化默认的objects管理器,甚至引发解析异常。
问题2:views.py缩进错误
return语句没有缩进在dashboard函数范围内,会导致函数无返回值,引发后续请求错误。
修正后的models.py
from django.db import models class data(models.Model): id = models.IntegerField(default=1, unique=True, primary_key=True) name = models.CharField(max_length=50) location = models.CharField(max_length=50) date = models.DateField() # 将Meta类嵌套在data模型内 class Meta: verbose_name_plural = 'datas' # 将__str__方法嵌套在data模型内 def __str__(self): return self.name
修正后的views.py
from appplus.models import data from django.shortcuts import render # 补充render的导入(若之前遗漏) def dashboard(request): last_added = data.objects.order_by('date')[:5] context_dict = { 'last_added': last_added } # 修正return语句的缩进 return render(request, 'appplus/home.html', context_dict)
额外建议
Django模型类名通常遵循大驼峰命名规范(如Data而非data),虽然不是强制要求,但能减少命名冲突风险,提升代码可读性。
内容的提问来源于stack exchange,提问作者R11
相关产品推荐
相关产品推荐

