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

Django中如何将模型字段值以文本形式展示而非可编辑字段

解决Django模板中表单字段显示为输入框而非文本的问题

给你几个实用的解决方案,根据你的场景选就行:

  • 直接调用模型实例的字段值
    如果你的视图已经把Profile实例(比如profile变量)传到模板里了,完全不用通过表单字段渲染,直接写:

    {{ profile.straat }}
    

    这是最简单直接的方式,直接展示数据库里存储的文本值,不会生成任何表单控件。

  • 渲染表单字段的value属性
    要是你还需要保留表单的上下文,只是不想显示输入框,可以直接取字段的value属性:

    {{ form.straat.value }}
    

    这样只会输出字段的文本内容,不会渲染整个输入控件。

  • 修改表单字段为只读/禁用
    如果必须保留表单控件但不让用户编辑,可以在ProfileForm的字段定义里添加widget属性:

    # forms.py
    from django import forms
    from .models import Profile
    
    class ProfileForm(forms.ModelForm):
        class Meta:
            model = Profile
            fields = ['straat', ...]
    
        def __init__(self, *args, **kwargs):
            super().__init__(*args, **kwargs)
            # 设置为只读
            self.fields['straat'].widget.attrs['readonly'] = 'readonly'
            # 或者设置为禁用(禁用后表单提交时不会传递该字段值)
            # self.fields['straat'].widget.attrs['disabled'] = 'disabled'
    

    这种方式会保留输入框的样式,但用户无法编辑内容,适合需要展示表单结构但不允许修改的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 07:20:28