Python/Django : Selecting max value of one-to-many relation and displaying it in HTML/View

标签 python django

日安,我是 Django 和 python 的初学者,两天前刚刚开始学习。这个qn与这个问题相关:

Python/Django: How to show both main model and 'foreign-key model' together in HTML

我有两个处于一对多(计划)关系的模型,模型如下:

class Plan(models.Model):
    plan_ID = models.CharField(
        primary_key=True,
        max_length=8,
        validators=[RegexValidator(regex='^\w{8}$', message='Length has to be 8', code='nomatch')]
    )
    plan_crisisID = models.ForeignKey(Crisis, on_delete=models.CASCADE)
    plan_status = models.CharField(max_length=50)

class Crisis(models.Model):
    crisis_ID = models.CharField(
        primary_key=True,
        max_length=4,
        validators=[RegexValidator(regex='^\w{4}$', message='Length has to be 4', code='nomatch')]
    )
    crisis_name = models.CharField(max_length=50)

目前,显示的数据如下所示:

enter image description here

我一般来说是 django/python 的新手,我不知道如何过滤数据,以便我只显示每个危机一次,并报告具有最高值的 ID。我想要的最终结果如下所示:

enter image description here

这是我的views.py部分:

def home(request):
    template = loader.get_template('pmoapp/home.html')
    planList = Plan.objects.filter(plan_crisisID__crisis_status='Ongoing')

    context = {
        #'crisisList': crisisList,
        'planList': planList
    }
    return HttpResponse(template.render(context, request))

如何编写循环函数以获得每个 CrisisID 的 planID 的最大值?任何帮助将不胜感激..非常感谢你..

最佳答案

您也可以尝试使用annotate

from django.db.models import Max

Plan.objects.values('plan_crisisID__crisis_ID').annotate(max_pk=Max('plan_ID'))

关于Python/Django : Selecting max value of one-to-many relation and displaying it in HTML/View,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46752477/

相关文章:

Django - 如何直接从表中的按钮删除对象

python - get_xticklabels() 包含空文本实例

python - 检查列表中的元素是否位于 django 模板中的另一个列表内

python - 将 NaN 转换为 DataFrame 中的数字时出现 TyperError

python - 来自数据库的具有非 ascii 字符的 Django 文件名

python - 测试 Django 命令文件或标准输入

django - 如何在 for 循环中更新 Django 查询对象

python - 尝试使用 Python 脚本将字符串添加到文件

python - 接口(interface)错误 : connection already closed (using django + celery + Scrapy)

django - Rest Framework 教程 IntegrityError 创建片段