将Django的ModelChoiceField显示为带标题和图像的下拉列表

时间:2017-05-10 19:42:16

标签: python django html-select html-form modelchoicefield

以下是我的Django表格。我想在下拉列表元素中一起显示缩略图和标题,而不是单选按钮。使用此配置,它使我的表单元素成为单选按钮。

我做错了什么,我无法弄清楚这一点。如果我更改 widget = forms.Select(),则会创建一个仅包含标题的下拉列表,但不会在标题旁边显示缩略图。

class CustomChoiceField(forms.ModelChoiceField):
    def label_from_instance(self, obj):
        return mark_safe("<img src='https://placeholdit.imgix.net/~text?txtsize=33&txt=350%C3%97150&w=350&h=150'><p>"+str(obj.category)+"</p>")

countries_list = ImageModel.objects.all()

class SubCatForm(forms.Form):
    category_pic = CustomChoiceField(widget=forms.RadioSelect(), queryset=countries_list, empty_label=None)

    class Meta:
        model = SubCatModel
        fields = ("sub_category_name", "category", "category_pic")
        widgets = {
            'sub_category_name': forms.TextInput(attrs={'class':'span11'})
        }

0 个答案:

没有答案