在我的项目中,我设置了这样的媒体文件夹:
settings.py
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
urls.py
urlpatterns = [
....
]+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
然后在我的models.py中创建一个类似这样的类:
class PD_Pictures(models.Model):
pic_IDmod = models.ForeignKey(PD_Models, related_name='modello')
pic_image = models.ImageField()
pic_descr = models.CharField(max_length=50)
def __str__(self):
return self.pic_descr
此时我在views.py
中的函数中提取了与PD_Picture
相关的db中的所有值:
prod_img = PD_Pictures.objects.all()
.....
return render(
request,
'base_catalog.html',
{
'bike_mod': bike_models,
'prod_img': prod_img,
'cat_list': cat_list,
'menu_list': menu_list['menu'],
'pcontent': menu_list['cont'],
'form': c_form
},
context
)
在我的模板中,我会显示相关的图像:
{% for pic in prod_img %}
<div class="4u">
<span class="image fit"
<img src="{{ pic.pic_image }}" alt="" />
</span>
</div>
{% endfor %}
好吧,此时我在db中插入一个新图像,在表中路径为newimage.jpg
,物理上在我的服务器上,图像存储在/media/newimage.jpg
中,如何从中提取值表并连接到我的模板中的媒体路径? (<server>/media/newimage.jpg
)
我尝试在upload_to='/models/'
中使用ImageField
,但唯一的效果是将图像保存到另一个模型文件夹中的主模型中。
答案 0 :(得分:2)
试试这个
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.js"></script>
<div class="slideOne"><button>Click Here</button>
<div class="slideChild">A</div>
<div class="slideChild">B</div>
<div class="slideChild">C</div>
<div class="slideChild">D</div>
</div>
<div class="some content">ABC</div>
<div class="slide"><button>Click Here</button>
<div class="slideChild" id="a">E</div>
<div class="slideChild">F</div>
<div class="slideChild">G</div>
<div class="slideChild">H</div>
</div>
<script>
$(document).on("click","button",function(){
var parendDIv=$(this).parent('div').attr('class');
$("."+parendDIv+">.slideChild").toggle();
});
</script>
答案 1 :(得分:0)
您可以将其添加到模板中并查看给出的路径吗?
{% for pic in prod_img %}
<p>{{ pic.pic_image }</p>
{% endfor %}
答案 2 :(得分:0)
来自django官方文件:
FieldFile.url 一个只读属性,用于通过调用底层Storage类的url()方法来访问文件的相对URL。
如果您尝试在模板中打印{{pic.pic_image}},您将收到db字段值,而使用来自django.core的{{pic.pic_image.url}} url()方法。 files.storage.Storage将调用,以及您的基本设置 似乎是正确的