【问题标题】:Is there any way to add a class attribute to an input tag generated by django.models?有没有办法将类属性添加到 django.models 生成的输入标签?
【发布时间】:2009-08-28 18:48:44
【问题描述】:

我这辈子都想不通。我不认为这是可能的。这么简单的事情一点都不难。有人吗?

【问题讨论】:

  • 请说明“输入标签”。请提供一些您想要做/创建的示例。

标签: python css django


【解决方案1】:

不确定您指的是什么。你的意思是 django.forms 生成的 HTML 标签吗?如果是这样,只需使用构造函数中的 attrs 属性指定一个自定义小部件。见docs

【讨论】:

  • 是的,这就是我的意思。我知道我可以设置的 attr 对象。但是,从 django.models 类自动生成的表单似乎不允许这样做。
  • 要自定义小部件,请在表单类中声明该字段。您必须为要添加类属性的每个字段执行此操作。见docs.djangoproject.com/en/dev/topics/forms/modelforms/…
【解决方案2】:

django-html 提供了一个模板标签,允许您在模板中添加额外的属性,如下所示:

{% field form.fieldname class="myclass" %}

【讨论】:

    【解决方案3】:

    您只需要覆盖表单类中的相关字段,并将您的属性添加到小部件。这在in the documentation 中描述得很清楚。

    【讨论】:

    • 没有表单类。这是一个模型类。
    • 你必须在某个地方有一个表单类,即使它只有元 class=MyModel 声明。还是您的意思是在管理员中生成的表单?如果是,请说出来。
    【解决方案4】:

    我认为这些都不是提问者特别需要的,现在在问题发布几年后,这可以更直观地完成。我认为提问者希望 ModelForm 字段使用您在视图中设置的类属性呈现输入标签。

    如果是这样,答案就在这里:

    How do I set default widget attributes for a Django ModelForm?

    确实,也许早在 09 年就是这种情况,在这种情况下,其他答案应该被否决。但我当时没有和 Django 一起工作,所以我会把它留给其他人。

    【讨论】:

      猜你喜欢
      • 2011-12-17
      • 1970-01-01
      • 1970-01-01
      • 2018-10-04
      • 2016-06-11
      • 2016-07-03
      • 1970-01-01
      • 2021-07-19
      • 1970-01-01
      相关资源
      最近更新 更多