You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django项目页面正常加载但无法从PostgreSQL获取数据求助

问题排查与解决

1. 视图函数中的语法错误(最直接原因)

你的views.py里有两处明显错误:

  • 多余的逗号:services = Service.objects.all().order_by("index"), 末尾的逗号会让services变成一个元组(而非Django的QuerySet),模板无法正常遍历这个元组内的QuerySet。
  • 上下文字典键值颠倒:{services : services} 应该用字符串作为键(对应模板里的services变量名),正确写法是{'services': services}。

修正后的views.py代码:

def services_view(request):
    services = Service.objects.all().order_by("index")
    return render(request, "service.html", {'services': services})

2. 其他需要确认的点

如果修正后仍无法读取数据,检查以下内容:

  • 数据库是否存在数据:通过python manage.py shell执行Service.objects.all(),确认是否能查询到数据。如果结果为空,需要先创建测试数据(比如通过后台admin或shell手动添加)。
  • 迁移是否正确执行:重新执行迁移命令,确保模型同步到PostgreSQL数据库:
    python manage.py makemigrations
    python manage.py migrate
    
  • Media文件配置:由于icon是ImageField,需要确保settings.py中配置了MEDIA相关路径,且开发环境中正确处理了media文件的访问:
    # settings.py
    MEDIA_ROOT = BASE_DIR / 'media'
    MEDIA_URL = '/media/'
    
    # urls.py
    from django.conf import settings
    from django.conf.urls.static import static
    
    urlpatterns = [
        # 你的其他路由配置
    ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
    

内容的提问来源于stack exchange,提问作者HP Luwang

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 09:00:55