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

Django模板无法显示ForeignKey关联的Spotify_Playlist表字段值

解决方案

核心问题:反向关联管理器名称书写错误

Django 中 ForeignKey 字段的默认反向查询规则为:关联对象的管理器名称为 模型类名全小写 + _set,你代码中使用大写开头的 Spotify_Playlist_set 不符合规则,导致无法读取到关联的播放列表数据,循环体完全没有执行,因此没有输出内容。

修复步骤

  • 第一步:修改模板中的反向查询写法,将{% for playlist in portfolio.Spotify_Playlist_set.all %}替换为以下正确写法:
{% for playlist in portfolio.spotify_playlist_set.all %}
  • 第二步(可选优化):自定义反向关联名称,降低记忆成本
    在Spotify_Playlist模型的ForeignKey字段中添加related_name参数:
class Spotify_Playlist(models.Model):
    # 自定义related_name后就可以用portfolio.playlists直接调取关联数据
    portfolio = models.ForeignKey(Portfolio, on_delete= models.CASCADE, null= True, related_name="playlists")
    # 其余字段保持不变

修改后模板代码可以简化为:

{% for playlist in portfolio.playlists.all %}

可选排查项

如果修改后仍无内容,可依次检查:

  • 视图函数中是否正确传递了portfolios查询集,推荐使用prefetch_related预加载关联数据避免N+1查询问题:
# 视图层示例
from .models import Portfolio

def index(request):
    portfolios = Portfolio.objects.prefetch_related("spotify_playlist_set").all()
    return render(request, "index.html", {"portfolios": portfolios})
  • 确认Django后台中已给对应Portfolio条目关联了至少一条Spotify_Playlist数据,无关联数据时循环不会输出内容。

内容的提问来源于stack exchange,提问作者Gastón Ariel Peppino

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 00:33:00