Django render复选框从模型中选择多个图标
我有以下型号:Django render复选框从模型中选择多个图标,django,django-forms,Django,Django Forms,我有以下型号: class PackageCategoryChoices(models.Model): name = models.CharField(max_length=100, blank=False) icon = models.CharField(max_length=100) def __unicode__(self): return self.name 这张表呢 class TripForm(forms.ModelForm): cat
class PackageCategoryChoices(models.Model):
name = models.CharField(max_length=100, blank=False)
icon = models.CharField(max_length=100)
def __unicode__(self):
return self.name
这张表呢
class TripForm(forms.ModelForm):
categories = forms.ModelMultipleChoiceField(widget=forms.CheckboxSelectMultiple, queryset=PackageCategoryChoices.objects.all())
基本上,我在数据库中保存一个图标,我只想将其呈现为一个表单。我无法从模板访问模型信息,也无法向表单字段添加额外的模型字段
我想要像这样的东西:
<div class="checkbox">
<label for="id_categories_1"><input id="id_categories_1" name="categories" type="checkbox" value="1" />
<span class="glyphicons envelope"></span><!-- this is the icon -->
Paquete pequeño<!-- this is the name -->
</label>
</div>
帕奎特·佩奎诺
我试图更改unicode方法,但它与其他形式冲突。您需要将
modelmultipechoicefield
子类化,并覆盖label\u from\u instance
方法:
from django.utils.html import format_html
class IconChoiceField(forms.ModelMultipleChoiceField):
def label_from_instance(self, obj):
return format_html('<span class="glyphicons {}"></span> {}',
obj.icon, obj.name)
class TripForm(forms.Form):
categories = IconChoiceField(widget=forms.CheckboxSelectMultiple,
queryset=PackageCategoryChoices.objects.all())
来自django.utils.html导入格式\u html
类IconChoiceField(forms.ModelMultipleChiceField):
def标签来自_实例(self,obj):
返回格式为html({}),
对象图标,对象名称)
类TripForm(forms.Form):
categories=IconChoiceField(widget=forms.CheckboxSelectMultiple,
queryset=PackageCategoryChoices.objects.all()
您需要子类化modelmultipechoicefield
并重写label\u from\u instance
方法:
from django.utils.html import format_html
class IconChoiceField(forms.ModelMultipleChoiceField):
def label_from_instance(self, obj):
return format_html('<span class="glyphicons {}"></span> {}',
obj.icon, obj.name)
class TripForm(forms.Form):
categories = IconChoiceField(widget=forms.CheckboxSelectMultiple,
queryset=PackageCategoryChoices.objects.all())
来自django.utils.html导入格式\u html
类IconChoiceField(forms.ModelMultipleChiceField):
def标签来自_实例(self,obj):
返回格式为html({}),
对象图标,对象名称)
类TripForm(forms.Form):
categories=IconChoiceField(widget=forms.CheckboxSelectMultiple,
queryset=PackageCategoryChoices.objects.all()