Извините за мой английский.
Возникла проблема со статическими файлами. У меня есть многостраничный образовательный сайт. На главной странице я подключил картинки. а на второй странице я не могу этого сделать, потому что первая строка URL-адреса идет точно к картинке, а вторая - через другой URL-адрес.
models.py
from django.db import models
class Alex(models.Model): #first page class
title = models.CharField(max_length=300, verbose_name = 'table of contents')
titletwo = models.CharField(max_length=300, null=True, verbose_name = 'Description')
content = models.TextField(null=True, blank=True, verbose_name='url img')
foto = models.ImageField(blank=True, upload_to="images/body/%Y/%m/%d", help_text='150x150px', verbose_name='Ссылка картинки')
class Meta:
verbose_name_plural = 'body'
verbose_name = 'body'
class Bdtwo(models.Model): #for the second page
title = models.CharField(max_length=300, verbose_name='table of contents')
content = models.TextField(null=True, blank=True, verbose_name='Description')
foto = models.ImageField(blank=True, upload_to="images/body/%Y/%m/%d", help_text='150x150px', verbose_name='url img')
class Meta:
verbose_name_plural = 'body2'
verbose_name = 'body2'
url.py - мой проект
from django.contrib import admin
from django.urls import path, include
from django.conf.urls.static import static
from django.conf import settings
urlpatterns = [
path('blog/', include('blog.urls')),
path('admin/', admin.site.urls),
]
url.py-application
rom django.urls import path
from .views import *
from django.conf.urls.static import static
from django.conf import settings
urlpatterns = [
path('', index),
path('two', two)
]+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
settings.py
STATICFILES_DIRS = [
os.path.join(BASE_DIR, "static"),
]
STATIC_URL = '/static/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'static/media/')
MEDIA_URL = 'static/media/'
views.py
from django.shortcuts import render
from .models import Alex, Bdtwo
def index(request):
bdx = Alex.objects.filter(id=2)
bdc = Alex.objects.filter(id=3)
bdv = Alex.objects.filter(id=4)
context = {'bdx': bdx, 'bdc': bdc, 'bdv': bdv,}
return render(request, 'blog/index.html', context )
def two(request):
bdx = Bdtwo.objects.filter(id=1)
bdc = Bdtwo.objects.filter(id=2)
bdv = Bdtwo.objects.filter(id=3)
context = {'bdx': bdx, 'bdc': bdc, 'bdv': bdv}
return render(request, 'blog/two.html', context)
HTML-индекс
<div class="row featurette">
{% for bb in bdv %}
<div class="col-md-7">
<h2 class="featurette-heading">{{ bb.title }}<span class="text-muted">{{ bb.titletwo }}</span></h2>
<p class="lead">{{ bb.content }}</p>
</div>
<div class="col-md-5">
<img class="featurette-image img-responsive" alt="500x500" src="{{ MEDIA_URL }}{{ bb.foto }}">
</div>
{% endfor %}
</div>
HTML - два
<div class="row featurette">
{% for bb in bdv %}
<div class="col-md-7">
<h2 class="featurette-heading">{{ bb.title }}<span class="text-muted">{{ bb.titletwo }}</span></h2>
<p class="lead">{{ bb.content }}</p>
</div>
<div class="col-md-5">
<img class="featurette-image img-responsive" alt="500x500" src="{{ MEDIA_URL }}{{ bb.foto }}">
</div>
{% endfor %}
</div>
Способ ввода HTML-кода идентичен, но это связано с тем, что URL-адреса перенаправленных ссылок ведутся по-другому. В url.py-приложении указан путь (", index), поэтому он идет точно по пути" body / static / media / images / body /% Y /% m /% d ", это правильный путь. Но путь ( 'two', two) находится на пути "body / two / static / media / images / body /% Y /% m /% d", и этот путь неверен. Я понимаю ошибку, но не знаю как чтобы исправить это. Пожалуйста, помогите.