Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django在RadioSelect或复选框上显示图像_Django_Image_Forms - Fatal编程技术网

Django在RadioSelect或复选框上显示图像

Django在RadioSelect或复选框上显示图像,django,image,forms,Django,Image,Forms,我是django的新手,我正在尝试将数据库中的图片显示在单选按钮或复选框上。我该怎么做 我有这个型号 class MyItems(models.Model): itemName=models.CharField(max_length=100) itemDesc=models.CharField(max_length=400) itemImage=models.ImageField(upload_to='pictures') class categories(models.Model): cat

我是django的新手,我正在尝试将数据库中的图片显示在单选按钮或复选框上。我该怎么做

我有这个型号

class MyItems(models.Model):
itemName=models.CharField(max_length=100)
itemDesc=models.CharField(max_length=400)
itemImage=models.ImageField(upload_to='pictures')

class categories(models.Model):
catName=models.CharField(max_length=100)
items=models.ManyToManyField(MyItems)
用户将图片上传到页面,并可以将其分类

我可以这样做,让它显示我的选择

class catForm(forms.Form):
catName=forms.CharField()
items=forms.ChoiceField(widget=forms.RadioSelect,choices=(MyItems.objects.all())
但是我该如何在标签上贴上这个img标签呢

<img src="itemImage.url" /> 


浏览了许多教程,但没有一个教程从数据库生成图像。

使用
ModelForm
,并进行一些定制:

第一个子类是
modelcooicefield

from django.utils.safestring import mark_safe


class CustomChoiceField(forms.ModelChoiceField):

    def label_from_instance(self, obj):
        return mark_safe("<img src='%s'/>" % obj.itemImage.url)

现在使用此表单而不是您的
catForm
。如果您以前没有使用过
ModelForm
,请参阅django文档了解详细信息。

感谢您的回复,我尝试过,它能够根据数据库项目更改标签。但是,图像不会出现,标签上唯一出现的是这些而不是图片。你看到的是文本而不是图像吗?顺便说一句,你需要在路径之前附加你的主机,例如,尝试返回
返回“%obj.itemImage.url
我尝试向其中添加localhost:8000,但它仍然返回文本而不是图像。请查看更新的答案,你必须将html标记为安全。现在它应该可以工作了是的它可以工作了!!非常感谢,非常感谢你的帮助。顺便问一下,有没有什么好的参考网站,你会推荐这些和更先进的django的东西?
class CatForm(forms.ModelForm):
  items = CustomChoiceField(widget=forms.RadioSelect, queryset=MyItems.objects.all())

  class Meta:
     model = categories