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

如何在Django中从数据库获取单个对象的指定字段值

Django获取指定字段值并传递到模板的解决方案

首先修正你的Model定义问题,Django中字段需要加括号完成实例化,而且自增主键无需手动定义,框架会自动生成:

# models.py
from django.db import models

class status_mod(models.Model):
    status = models.BigIntegerField()  # 补全字段实例化的括号
    class Meta:
        db_table = "status"

接下来修改视图层代码,你当前的get(status)用法错误,get()需要传入筛选条件(比如按id筛选),提取字段值后再传递到模板:

获取单个对象的status值

# views.py
from django.shortcuts import render
from cvs.models import status_mod

def your_view(request):
    # 根据实际业务条件筛选,这里以id=1为例
    status_obj = status_mod.objects.get(id=1)
    status_value = status_obj.status  # 提取status字段的具体值
    # 将变量传入模板上下文
    return render(request, 'your_template.html', {'status_val': status_value})

获取多个对象的status值(列表形式)

如果需要获取所有记录的status值:

# views.py
def your_view(request):
    # flat=True让结果返回一维列表,而非元组嵌套
    status_values = status_mod.objects.values_list('status', flat=True)
    return render(request, 'your_template.html', {'status_vals': status_values})

最后在模板中调用变量:

<!-- your_template.html -->
<!-- 单个值的调用方式 -->
<p>当前状态值:{{ status_val }}</p>

<!-- 多个值的调用方式,用循环遍历 -->
<ul>
{% for val in status_vals %}
    <li>{{ val }}</li>
{% endfor %}
</ul>

注意:使用get()方法时,若没有匹配对象或匹配多个对象会抛出异常,可根据业务场景替换为filter()或first()方法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 01:35:25