我是django的新手,我正在尝试将数据库中的图片显示在radiobutton或复选框上。我该怎么做?
我有这个模型
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" />
经历过许多教程,但没有一个教程从数据库生成图像。
答案 0 :(得分:2)
使用ModelForm
进行一些惯例:
第一个子类ModelChoiceField
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)
现在:
class CatForm(forms.ModelForm):
items = CustomChoiceField(widget=forms.RadioSelect, queryset=MyItems.objects.all())
class Meta:
model = categories
现在使用此表单而不是catForm
。如果您之前没有使用过ModelForm
,请参阅django文档了解详细信息。