【发布时间】:2011-07-25 18:11:33
【问题描述】:
我一直在尝试使用 Django api 隐藏模型类中定义的隐藏字段的标签。模型的 CRUD 操作由 Django admin 管理。
我的模特是
class RackForm(django.forms.ModelForm):
def __init__(self, *args, **kwargs):
self.fields['racktypeid'].widget = \
forms.HiddenInput(attrs={'styles': 'display:none;'})
..... other initialization
下面给出生成的html源码
<div class="form-row racktypeid">
<div>
**<label for="id_racktypeid" class="required">Rack Type:</label>**
**<input styles="display:none;" name="racktypeid" value="3" onchange="changeRackType(this);" type="hidden" id="id_racktypeid" />**
<p class="help">The physical type of rack as defined in the rack type list</p>
</div>
</div>
该字段已隐藏,但未隐藏关联的标签。我什至尝试过使用 jQuery。我可能对语法有误。如果我是,如果我错了,请纠正我。
$(document).ready(function() {
// Hide label for RackForm rack type id label.
$('#id_racktypeid, label[for="#id_racktypeid"]').hide()
$('#id_racktypeid, label[for="#id_racktypeid"]').parent().hide()
});
});
没有一个选项成功。我需要做些什么来隐藏隐藏字段的标签吗?
更新:最终我选择隐藏整个 div 标签。
【问题讨论】:
-
标签[for="..."] 选择器中不要包含#。
-
是的,# 太多了。此外,这可以使用纯 css 完成: label[for="racktypeid"]{display:none;}
-
@arie:我需要为此创建一个 css 文件吗?对不起,我不明白..
-
要么将其放入包含在模板中的 css 文件中,要么将其直接添加到页面头部的样式标签中。在这两种情况下,最好的方法可能是在您的基本模板中创建一个 extra_head-block,您可以在您的实际模板中简单地覆盖/继承(参见:ericholscher.com/projects/django-conventions/app)。
-
查看此模板以了解我的意思:bit.ly/fQaix1
标签: javascript python django django-admin