如何在django中向选项标签添加属性?
|
我必须将title属性添加到ModelChoiceField的选项中。这是我的管理员代码:
class LocModelForm(forms.ModelForm):
def __init__(self,*args,**kwargs):
super(LocModelForm,self).__init__(*args,**kwargs)
self.fields[\'icons\'] = forms.ModelChoiceField(queryset = Photo.objects.filter(galleries__title_slug = \"markers\"))
self.fields[\'icons\'].widget.attrs[\'class\'] = \'mydds\'
class Meta:
model = Loc
widgets = {
\'icons\' : forms.Select(attrs={\'id\':\'mydds\'}),
}
class Media:
css = {
\"all\":(\"/media/css/dd.css\",)
}
js=(
\'/media/js/dd.js\',
)
class LocAdmin(admin.ModelAdmin):
form = LocModelForm
我可以添加任何属性来选择小部件,但是我不知道如何向选项标签添加属性。任何想法 ?
没有找到相关结果
已邀请:
6 个回复
澳绍能
中的字段,如果要覆盖小部件,请使用
内部类,如果要覆盖表单字段,请像普通(非模型)形式一样声明它们。 如果
小部件没有执行您想要的操作,则只需制作一个即可。原始窗口小部件使用
方法获取单个选项的HTML表示-创建一个子类,覆盖它,然后添加所需的任何内容。
壬驴拿歪竞
不再有效。这是对我有用的解决方案:
然后在视图中,使用
渲染上下文,其中
是这样的字典:
。
氮顺
哩翔购
方法。请参阅此链接:https://docs.djangoproject.com/zh-CN/1.11/releases/1.11/#changes-due-to-the-introduction-of-template-based-widget-rendering 这是一种适用于我的解决方案,不同于Kayoz的解决方案。我没有像示例中那样修改名称,但我希望它仍然清楚。在模型表单中,我覆盖了该字段:
然后,我从上面声明类,并另外声明一个迭代器:
距相镭
阀傻
并深入挖掘结构,您将在
中看到各个选项的属性。例如,在我的子类中,我有以下代码: