将表单样式添加到django表单中

时间:2014-07-04 18:59:21

标签: python django templates django-templates

我目前正在向django管理员添加一个主题一个问题我发现它在表单中添加样式是非常困难的,我找不到很多有用的文档。我需要做的唯一真正的事情是向表单元素添加类,以便它们匹配我正在使用的主题这是可能的,如果是这样,你将如何去做我正在使用的代码是非常基本的和基本的代码包含在标准主题中的任何人都知道如何将这些标准位代码添加到我所拥有的代码中。

  {% if is_popup %}
        <input type="hidden" name="_popup" value="1" />
  {% endif %}
  {% if save_on_top %}
        {% block submit_buttons_top %}
            {% submit_row %}
        {% endblock %}
  {% endif %}
  {% if errors %}
        <p class="errornote">
                {% blocktrans count counter=errors|length %}
                     Please correct the error below.
                     {% plural %}
                     Please correct the errors below.
                {% endblocktrans %}
        </p>
        {{ adminform.form.non_field_errors }}
  {% endif %}

 {% block field_sets %}
        {% for fieldset in adminform %}
                {% include "admin/includes/fieldset.html" %}
        {% endfor %}
 {% endblock %}

 {% block after_field_sets %}{% endblock %}

 {% block inline_field_sets %}
        {% for inline_admin_formset in inline_admin_formsets %}
                {% include inline_admin_formset.opts.template %}
        {% endfor %}
 {% endblock %}

 {% block after_related_objects %}{% endblock %}

 {% block submit_buttons_bottom %}
        {% submit_row %}
 {% endblock %}

1 个答案:

答案 0 :(得分:1)

有很多方法可以做到这一点,但肯定有一种方法是覆盖ModelAdmin中的所有小部件而不是模板中的小部件。这可能看起来像这样:

from django.db import models
from django.contrib import admin
from django.forms.extras.widgets import TextInput

class MyModelAdmin(admin.ModelAdmin):
    formfield_overrides = {
        models.TextField: {'widget': TextInput(attrs={'class':'my-widget-class'},)},
    }

您必须为每个小部件执行此操作,但之后他们会拥有相应的类 - 至少对于该modelAdmin。