2012-04-01 100 views
1

是否可以更改内联的显示以将其更改为this?我正在考虑更改管理模板文件“tabular.html”,是否有可能或者我应该改变别的东西?Django表格内联显示

更新

好吧,我一直在试图编辑tabular.html但我的Django的经验是不够的,了解如何/在哪里进行必要的修改......哪里任何线索我应该开始? 我不应该改变CSS吗? 我猜{{field.field}}自动呈现在下拉菜单中(Django管理默认值),如果我这个理解正确...

更新2

我能够改变第二列,我想,但我认为,第一个它的将是棘手的功能...当前status

更新3

一个黑客,我认为会的工作是在每个内联上仅显示第一个字段的其中一个选项,然后禁用“添加其他选项”。我如何迭代“tabular.html”中的选项?

更新4

我猜的伎俩应该在这里完成...我怎么能以显示每行只有一个选择在球场上的选择重复?

{% for fieldset in inline_admin_form %} 
      {% for line in fieldset %} 
      {% for field in line %} 
      {{ field.get_choices_display }} 
       <td class="{{ field.field.name }}"> 
       {% if field.is_readonly %} 
        <p>{{ field.contents }}</p> 
       {% else %} 
        {{ field.field.errors.as_ul }} 
        {{ field.field }} 
       {% endif %} 
       </td> 
      {% endfor %} 
      {% endfor %} 
     {% endfor %} 

回答

3

是的,你可以改变你的InlineModelAdmin实例的template您的自定义模板,例如customized_inline.html。首先,将django/django/contrib/admin/templates/admin/edit_inline/tabular.html复制到您的模板路径中的customized_inline.html。

编辑

也许我被误解。如果要更改表单字段的呈现样式,通常的方法是更改​​它的widget。在Django ModelAdmin和InlineModelAdmin中,定制一个字段控件的主要方法是在django/contrib/admin/options.py内部使用BaseModelAdmin.formfield_for_dbfield方法,读取代码时需要使用the doc,而当您想要更改表单字段的控件时。

对于有选择的字段,您可以简单地在ModelAdmin/InlineModelAdmin实例中设置radio_fields以将字段呈现为无线电选择而不是下拉菜单。

此外,使用OneToOneField而不是ForeignKey的,或设定extramax_num在InlineModelAdmin情况下,以防止管理员从渲染内联的多行,如:

class SomeInlineAdmin(admin.TabularInline): 
    model = Foo 
    extra = 1 
    max_num = 1 

我无法打开你的第二个链接,你可以发布问题中的事情而不是使用外部链接。

+0

谢谢,我能够得到我想要的效果。 – Pedro 2012-04-02 16:07:58