我目前正在建立一个项目,我必须使用媒体。因为我已经使用媒体之前,我复制粘贴一切从我的其他项目,虽然原来的工作,我目前的项目是没有。我可以上传并选择通过管理页面,但它不会显示在html中的照片
我的观点:
def index(request):
dergi = Dergi.objects.all()
kitap = Kitap.objects.all()
yazar = Yazar.objects.all()
siir = Siir.objects.all()
template = loader.get_template("index.html")
context={
"DERGI":dergi,
"KITAP":kitap,
"YAZAR":yazar,
"SIIR":siir,
}
return HttpResponse(template.render(context, request))
我的模特:
class Kitap(models.Model):
isim = models.CharField(max_length=255)
yazar = models.CharField(max_length=255)
foto = models.ImageField(upload_to="foto", null=True)
我的网址:
urlpatterns = [
path('admin/', admin.site.urls),
path("", include("index.urls"))
]
if settings.DEBUG:
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
设置:
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'
还有我的html:
<img src="/media/{{ KITAP.foto }}" alt="" class="rounded-t-lg">
<img src="/media/{{ KITAP.foto.url }}" alt="" class="rounded-t-lg">
<img src="{{ KITAP.foto.url }}" alt="" class="rounded-t-lg">
我已经尝试了所有,但它只是给我错误:获取/媒体/ HTTP/1.1”404 2679或:页面未找到:/foto/
2条答案
按热度按时间9udxz4iz1#
根据您的索引视图函数,KITAP是一个查询集,而不是单个查询。在模板中尝试循环或使用**Kitap.objects.get(pk=some_value)方法或类似KITAP[0]或get_object_or_404(id=some_value)**的方法从视图发送单个对象。
模板中的For循环将如下所示:
v1l68za42#
由于您使用
.all()
方法发送Kitap
模型的所有示例,因此您应该迭代所有示例,如下所示: