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

Django ListView渲染当前登录用户对象列表的模板代码编写

嘿,这就给你写出适配的模板代码,还带详细说明哦!

首先,你的视图已经把当前登录用户的所有Scenario对象过滤好,放到了myscenarios这个上下文变量里,所以模板只需要遍历这个变量,展示你需要的字段就行。下面是完整的模板示例:

{% extends 'base.html' %} <!-- 替换成你项目实际的基础模板路径,没有的话可以删除此行 -->

{% block content %}
  <div class="container">
    <h1>我的场景列表</h1>

    <!-- 检查是否有场景数据 -->
    {% if myscenarios %}
      <div class="scenario-list">
        {% for scenario in myscenarios %}
          <div class="scenario-item">
            <!-- 展示场景标题,替换成你模型里的实际字段 -->
            <h2>{{ scenario.title }}</h2>
            <!-- 展示作者和发布日期 -->
            <p class="meta-info">
              作者: <strong>{{ scenario.scenarioAuthor.username }}</strong> | 
              发布时间: {{ scenario.date_posted|date:"Y-m-d H:i" }}
            </p>
            <!-- 展示场景描述,用truncatewords过滤器截断过长内容 -->
            <p>{{ scenario.description|truncatewords:20 }}</p>
            <!-- 可以添加跳转到场景详情页的链接,根据你的URL配置调整 -->
            <a href="{% url 'scenario-detail' scenario.pk %}" class="btn">查看详情</a>
          </div>
          <hr>
        {% endfor %}
      </div>
    {% else %}
      <p>你还没有创建任何场景,快去<a href="{% url 'scenario-create' %}">创建第一个场景</a>吧!</p>
    {% endif %}
  </div>
{% endblock content %}

关键说明:

  • 基础模板继承:如果你的项目有统一的基础模板(比如包含导航栏、页脚的base.html),用{% extends %}继承可以保持页面风格统一,没有的话直接删掉这一行就行。
  • 字段替换:代码里的title、description是假设的Scenario模型字段,你要换成自己模型里实际存在的字段,比如name、content之类的。
  • 模板过滤器:|date:"Y-m-d H:i"用来格式化日期显示,|truncatewords:20用来截断过长的文本,避免页面内容太冗长。
  • 空数据提示:当用户还没有创建任何场景时,显示友好提示,甚至可以直接跳转到创建页面(只要你配置了对应的scenario-create URL)。

这样写出来的模板就能完美渲染你视图里过滤好的用户专属场景列表啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 09:10:28