django - 显示可能不存在的对象的页面?
问题描述
所以我有一个用于查看专辑页面的页面,该页面还调用艺术家 id 来显示专辑的关联艺术家。
在我的数据库中,“艺术家”和“乐队”是两个不同的模型。
我以这种格式调用艺术家 ID:
href="{% url 'artist_details' Artist_id=Album.Artist.id %}"
在 view.py 中:
artist = get_object_or_404(Artist, pk=Artist_id)
因此,当加载不包含艺术家而是乐队的专辑页面时,有没有办法解决由于没有有效的艺术家 ID 而发生的 NoReverseMatch 错误?(因为它获取的是乐队 ID)
提前致谢
解决方案
如果专辑没有艺术家,那么渲染链接可能根本没有意义,因此将其包装在一个if
块中:
{% if Album.Artist %}
<a href="{% url 'artist_details' Artist_id=Album.Artist.id %}"></a>
{% endif %}
在不相关的注释中,您可能会考虑遵循PEP8进行变量命名 - 在 Python 中通常不鼓励使用驼峰式大小写来命名变量。
推荐阅读
- python - 如何使用 Beautiful 或 Selenium 在 Python 中基于 div id 获取 aria-label 作为文本
- python - 无法在我的 Mac OS big Sur 上使用 nltk。虽然我已经通过 pip install nltk 安装了 nltk
- reactjs - 浏览器关闭时清除本地存储Reactjs
- python - 在 Pygame 中为井字游戏创建 X
- python - 是否可以在全息视图中自动缩放 yrange?
- jenkins - Jenkins 警告:来自 Kubernetes Secrets 的凭据将不可用
- ffmpeg - 带缩放的ffmpeg,结合视频和音频
- mysql - 无论记录是否存在,在与另一个表匹配后查询以更快地加载结果
- javascript - HTML/CSS 设置和 Javascript 设置的区别 - 主要是 Svg>Line 元素
- python - 如何在 spacy 中获得合取的跨度?