Python 现场未显示的图像
我无法在我的网站上看到图像显示为已损坏。以下是我尝试过的: 已安装枕头:已在my models.py中导入。 Settings.py具有:Python 现场未显示的图像,python,django,Python,Django,我无法在我的网站上看到图像显示为已损坏。以下是我尝试过的: 已安装枕头:已在my models.py中导入。 Settings.py具有: MEDIA_ROOT = os.path.join(BASE_DIR, 'media/') MEDIA_URL = '/media/' 图片:当前在我的主项目目录中的媒体文件夹中 app/URL.py具有staticsettings.MEDIA\u URL、document\u root=settings.MEDIA\u root和导入的设置。 模板有{%
MEDIA_ROOT = os.path.join(BASE_DIR, 'media/')
MEDIA_URL = '/media/'
图片:当前在我的主项目目录中的媒体文件夹中
app/URL.py具有staticsettings.MEDIA\u URL、document\u root=settings.MEDIA\u root和导入的设置。
模板有{%load static%}和{{post.image.url}。
收集静态数据。
进行迁移。
Ran服务器:
settings.py
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static/')
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'profiles/static/')
]
MEDIA_ROOT = os.path.join(BASE_DIR, 'media/')
MEDIA_URL = '/media/'
urls.py
from django.urls import path
from . import views
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
path('post/<id>/', views.post, name='post'),
....
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
models.py
from django.db import models
from django.conf import settings
from PIL import Image
class Profile(models.Model):
title = models.CharField(max_length=200, blank=True, null=True)
bio = models.TextField(max_length=500, blank=True)
user = models.OneToOneField(settings.AUTH_USER_MODEL,
on_delete=models.CASCADE, null=True)
def __str__(self):
return f'{self.user.username} Profile'
class Post(models.Model):
title = models.CharField(max_length=200)
post = models.TextField(max_length=100, blank=True)
image = models.ImageField(default='default.jpg',
upload_to='picsinposts')
profile = models.ForeignKey(Profile, on_delete=models.CASCADE,
blank=True, null=True)
def __str__(self):
return self.title
{%extends base.html%}
{%load static%}
{%block content%}
{{profile.title}}
{{profile.bio}
{%if request.user==profile.user%}
{%endif%}
{post%中的post为%1}
静态url必须位于项目的url.py中。 删除此表单app/urls.py并将其放入项目的urls.py中: project/url.py
urlpatterns = [
...... ..] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
这就是你的应用程序URL。静态URL需要添加到主项目URL中。尽管请注意,这仅用于开发。