我们可以格式化模型表单如何在模板上的 Django 中显示吗

     2023-02-23     280

关键词:

【中文标题】我们可以格式化模型表单如何在模板上的 Django 中显示吗【英文标题】:Can we format as to how the Model Form displays in Django on template 【发布时间】:2015-11-23 08:05:29 【问题描述】:

所以我使用 django 用户模型(来自 django.contrib.auth.models 导入用户)并使用 ModelForm(来自 django.forms 导入 ModelForm)创建了一个模型表单。当我在模板上显示它时,它作为用户名显示在选择框上。我想显示它是 first_name 和 last_name。

这是我在 HTML 中用于表单的代码

<form class="form-horizontal" method="post" role="form">
    % csrf_token %
    <fieldset>
        <legend> title </legend>

        % for field in form % % if field.errors %
        <div class="form-group">
            <label class="control-label col-sm-2"> field.label </label>
            <div class="controls col-sm-10">
                 field 
                <p class="formError">
                    % for error in field.errors % error % endfor %
                </p>
            </div>
        </div>
        % else %
        <div class="form-group">
            <label class="control-label col-sm-2"> field.label </label>
            <div class="controls col-sm-10">
                 field  % if field.help_text %
                <p class="help-inline"><small> field.help_text </small></p>
                % endif %
            </div>
        </div>
        % endif % % endfor %
    </fieldset>

    <div class="form-actions" style="margin-left: 150px; margin-top: 30px;">
        <button type="submit" class="btn btn-primary">Submit</button>
    </div>
</form>

【问题讨论】:

【参考方案1】:

子类ModelChoiceField 并覆盖label_from_instance 以显示名字和姓氏。

from django.forms import ModelChoiceField

class UserChoiceField(ModelChoiceField):
    def label_from_instance(self, obj):
        return "%s %s" % (obj.first_name, obj.last_name)

然后使用模型表单中的选择字段。

from django import forms
from django.contrib.auth.models import User

class MyModelForm(forms.ModelForm):
    user = UserChoiceField(queryset=User.objects.all())
    ...

【讨论】:

感谢您的回复。如果 User 是另一个模型的foregin_key,如何做到这一点?就像模型表单用于另一个模型,但用户是模型中的字段之一。 上面的表格MyModelForm是一个模型MyModel,它有一个User的外键。自定义选择字段意味着用户将显示为&lt;first_name&gt; &lt;last_name&gt; 而不是&lt;username&gt;。这不是你想要的吗?如果没有,请用一些代码更新您的答案,以帮助解释。 是的,这就是我想要的。我有一个名为 PermissionAssignment 的模型 类 PermissionAssignment(models.Model): permissionAssignmentID = models.AutoField(primary_key=True) projectID_fk = models.ForeignKey(Project, default=None, null=True) userID_fk = models.ForeignKey(User, default=1) 这是我创建表单的模型 如果您将userID_fk = UserChoiceField(queryset=User.objects.all()) 添加到您的模型表单,上面的UserChoiceField 应该可以工作。

(如何)我可以判断我的表单字段是不是隐藏在 Django 模板中

】(如何)我可以判断我的表单字段是不是隐藏在Django模板中【英文标题】:(How)canItellifmyformfieldishiddeninDjangotemplate(如何)我可以判断我的表单字段是否隐藏在Django模板中【发布时间】:2014-12-2013:01:45【问题描述】:我有一个D... 查看详情

Django:如何在 ajax 中返回模型表单集并在模板中使用

】Django:如何在ajax中返回模型表单集并在模板中使用【英文标题】:Django:Howtoreturnmodelformsetinajaxanduseintemplate【发布时间】:2012-06-2117:05:27【问题描述】:我需要在运行时使用ajax将表单动态添加到我的表单集中,我指的是Dynamical... 查看详情

如何从 django 的表单中获取数据?

...】:2017-12-3113:10:44【问题描述】:我的模板django中有一个可以的表单,它可以保存在模型中。好吧,现在,我想在这个表单中创建一个新表单。这个表单,我在模板中创建,但现在,我想获取数据以保存在另一个模型中。(我不... 查看详情

使用 CBV 在 Django 中的一个视图/模板中的两个模型表单

...ousingCBV【发布时间】:2013-05-3013:15:54【问题描述】:有人可以展示在一个视图/模板中使用两个模型表单的示例吗?任务是在一个CBV中处理多个表单,其中第二个表单的模型对第一个表单模型具有FK,因此来自第一个表单的选择小... 查看详情

多对多模型的 Django 表单。如何从视图/模板填写表格?

】多对多模型的Django表单。如何从视图/模板填写表格?【英文标题】:Djangoformformany-to-manymodel.HowdoIfillaformfromviews/template?【发布时间】:2014-03-0305:43:07【问题描述】:所以我有2个通过Many-to-many关系关联的模型。因为我需要一个... 查看详情

如何在 django 模型表单中添加自定义字段?

】如何在django模型表单中添加自定义字段?【英文标题】:Howtoaddacustomfieldindjangomodelform?【发布时间】:2019-01-2821:44:57【问题描述】:我正在尝试在表单中添加只读字段。模型Folder已在管理站点注册。FolderAdminForm定义自定义字段s... 查看详情

Django - 不使用表单或模型表单时在模板中呈现模型选择

】Django-不使用表单或模型表单时在模板中呈现模型选择【英文标题】:Django-RenderingModelChoicesintemplatewhennotusingFormsorModelForms【发布时间】:2018-07-1410:37:27【问题描述】:我创建了一个模型,其中一个字段有选择。我在模板中创建... 查看详情

我可以在 django 模型字段中添加帮助文本吗

...我可以在表单中添加帮助文本。但是现在我的经理希望当我们显示详细信息页面时,应该有关于将鼠标悬停在每个字段上的帮助。现在我很困惑,我应该在哪里为5-6个表格中的每个表格输入50 查看详情

我可以有一个没有模型的 Django 表单吗

】我可以有一个没有模型的Django表单吗【英文标题】:CanIhaveaDjangoformwithoutModel【发布时间】:2013-07-1905:21:52【问题描述】:我的模板中可以有一个没有模型支持的表单吗?我不需要存储数据,只需要该数据在视图中生成我自己... 查看详情

使用 Form 标签在 Django 模板中获取模型的名称

...的名称。我考虑过通过表单模板标签访问名称。我知道我可以通过上下文字典轻松地交出这些信息-但我想使用来自表单类的信息,因为我已经在ModelForm的元数据中 查看详情

如何使用 django 表单/模型来表示字段之间的选择?

】如何使用django表单/模型来表示字段之间的选择?【英文标题】:HowcanIusedjangoforms/modelstorepresentchoicesbetweenfields?【发布时间】:2010-10-0504:29:44【问题描述】:如何在模型字段中使用布尔选项来启用/禁用其他字段。如果布尔值为... 查看详情

Django 模板 - 使用字符串从表单呈现字段

...时间】:2021-12-1508:50:38【问题描述】:根据django的文档:我们不必让Django解压表单的字段;如果我们愿意,我们可以手动完成(例如,允许我们重新排序字段)。每个字段都可以作为表单的属性使用form.name_of_field,并且在Django模... 查看详情

django:如何从包含外键的多个模型中制作一个表单

】django:如何从包含外键的多个模型中制作一个表单【英文标题】:django:Howtomakeoneformfrommultiplemodelscontainingforeignkeys【发布时间】:2011-03-0502:01:16【问题描述】:我正在尝试在一个页面上制作一个使用多个模型的表单。模型相互... 查看详情

在 Django 中验证/清理非模型表单上的 FileField?

】在Django中验证/清理非模型表单上的FileField?【英文标题】:Validate/cleanaFileFieldonanon-modelforminDjango?【发布时间】:2011-04-2212:02:06【问题描述】:我最终试图通过扩展类型验证FileField。但我什至无法获得该字段的干净方法来获取P... 查看详情

在 Django 中,如何在模板中手动构造表单集?

...NITIAL_FORMS。是否有一个隐藏的显示小部件,其中已经有我可以调用的?<label>formsettitl 查看详情

如何在 Django 中向 ModelForm 添加非模型字段?

】如何在Django中向ModelForm添加非模型字段?【英文标题】:HowtoaddnonmodelfieldtoModelForminDjango?【发布时间】:2013-05-1405:48:37【问题描述】:我希望这是有道理的,这就是我想做的事情(无论出于何种原因)。我想在我的模型表单中... 查看详情

如何使用 django 在模板中显示默认值?

...【发布时间】:2012-07-2605:35:09【问题描述】:我正在使用模型表单来扩展用户的个人资料。我希望以前保存的数据在用户决定重写之前显示在表单中。如何使用django在模板中执行此操作?型号classUserProfile(models.Model):user=m 查看详情

没有在模板中获取模型表单值

】没有在模板中获取模型表单值【英文标题】:Notgettingmodelformvaluesintemplate【发布时间】:2019-12-0306:58:01【问题描述】:Django用户配置文件模型表单数据没有显示在模板上,甚至没有给我一个错误!我正在学习使用用户配置文件... 查看详情