Как настроить статические файлы на разных страницах. Проблемы с URL - PullRequest
0 голосов

Извините за мой английский. Возникла проблема со статическими файлами. У меня есть многостраничный образовательный сайт. На главной странице я подключил картинки. а на второй странице я не могу этого сделать, потому что первая строка 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", и этот путь неверен. Я понимаю ошибку, но не знаю как чтобы исправить это. Пожалуйста, помогите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...