ben*_*ham 5 django image imagefield
我有一个django应用程序,允许用户使用它提交图像.现在我的模型看起来像
class Posting(models.Model):
title = models.CharField(max_length=150)
images = models.ForeignKey(Image, null=True)
class Image(models.Model):
img = models.ImageField(upload_to="photos/",null=True, blank=True)
Run Code Online (Sandbox Code Playgroud)
我试图在我的模板中显示图像,但我似乎无法让它工作.我已经走了无数堆叠溢出的帖子,并没有任何运气.在我的模板中,我有
{ for post in postings }
<img src"{{ post.image.url }} #and many variations of this
Run Code Online (Sandbox Code Playgroud)
然而其他似乎显示网址.网址似乎总是空白.任何帮助将不胜感激!
小智 12
这就是我如何运作的方式.
settings.py
import os
BASE_DIR = os.path.dirname(os.path.dirname(__file__))
STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.path.join(BASE_DIR, "static"),
)
MEDIA_ROOT = (
BASE_DIR
)
MEDIA_URL = '/media/'
Run Code Online (Sandbox Code Playgroud)
models.py ...
image = models.ImageField(upload_to='img')
Run Code Online (Sandbox Code Playgroud)
urls.py(项目的)
if settings.DEBUG:
urlpatterns = urlpatterns + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
Run Code Online (Sandbox Code Playgroud)
模板(.html)
<img src="{{ post.image.url }}" alt="img">
Run Code Online (Sandbox Code Playgroud)
做这样的事情。这段代码在我的应用程序中运行。
视图.py:
def list(request):
images = Image.objects.all()
return render(request, "list.html", {'images': images})
Run Code Online (Sandbox Code Playgroud)
列表.html:
{% for i in images %}
<img src="{{ i.image.url }}" width="500px"/>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)