我正在try 将HealthSTATS模型中的数据显示到我的模板中,但我只能通过User字段.我已经将其他字段添加到我的模板中,但它们没有显示.我也希望能够过滤输出,只显示登录用户的记录.

Models.py

class HealthStats(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    date = models.DateField(auto_now=True)
    weight = models.DecimalField(max_digits=5, decimal_places=2)
    run_distance = models.IntegerField(default=5)
    run_time = models.TimeField()

    class Meta:
        db_table = 'health_stats'
        ordering = ['-date']

    def __str__(self):
        return f"{self.user} | {self.date}"

Views.py:

class HealthHistory(generic.TemplateView):
    model = HealthStats
    template_name = 'Health_Hub_history.html'

    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        context['stats'] = HealthStats.objects.all()
        return context

Health_Hub_history.html

{% extends 'base.html' %}
{% load static %}

{% block content %}
<div class="container-fluid">
    <div class="row">
        <div class="col-sm-12 text-center">
            <h1>My Health History</h1>
        </div>
    </div>
</div>
<div class="container-fluid">
    <div class="row justify-content-center">
        <div class="col-auto text-center p-3">
            <table class="table table-striped table-hover table-bordered">
                <tr>
                    <td>User:</td>
                    <td>Weight (lbs):</td>
                    <td>Date:</td>
                    <td>Run Distance (km):</td>
                    <td>Run Time (HH:MM:SS):</td>
                </tr>
                {% for stat in stats %}
                <tr>
                    <td>{{ user }}</td>
                    <td>{{ weight }} </td>
                    <td>{{ date }}</td>
                    <td>{{ run_distance }}</td>
                    <td>{{ run_time }}</td>
                </tr>
                {% endfor %}
            </table>
        </div>
    </div>
</div>
{% endblock content %}

如有任何帮助,我们将不胜感激!

推荐答案

在您的模板中执行以下操作:

                {% for stat in stats %}
                <tr>
                    <td>{{stat.user}}</td>
                    <td>{{stat.weight}} </td>
                    <td>{{stat.date}}</td>
                    <td>{{stat.run_distance}}</td>
                    <td>{{stat.run_time}}</td>
                </tr>
                {% endfor %}

希望它能奏效

Django相关问答推荐

如何在uwsgi中创建单个日志(log)文件?

django-filter compose 过滤的 url

Django Admin:在一个部分中同时显示多个应用程序?

Django rest framework, AttributeError: 'str' object has no attribute 'data' 无法使用表单上传图片

在 Django 4.1 中提交表单之前显示数据

如何将 select_related 应用于 Django 中的 m2m 关系的对象?

Django - 是否可以为查询集预取单个字段的多个过滤器?

Django - 使用在 URL 中传递的父类主键从子类中过滤对象

Django 长时间运行带有线程/处理的异步任务

在 settings.py 中指定 Django 测试数据库名称

ModelForm 的 Django TextField max_length 验证

何时在 django 中使用 pre_save、save、post_save?

直接在Django的模板中访问ForeignKey

如何在 django-rest-framework 中为 API 使用 TokenAuthentication

如何在 django admin 中显示布尔属性

django 模板列表变量中的最后一个元素

如何在 Python 中运行另一个脚本而不等待它完成?

Django 多项 Select 字段/复选框 Select 多个

在 Django 单元测试中使用 mock 修补 celery 任务

APIView 类和视图集类之间的区别?