繁体   English   中英

向Django表单添加表单样式

[英]adding form styling to django forms

我目前正在将主题添加到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 %}

有很多方法可以做到这一点,但是肯定一种方法是覆盖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。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM