images fix

This commit is contained in:
2025-05-16 12:02:36 +03:00
parent 8d7be8f829
commit 9cf83b9710
7 changed files with 49 additions and 16 deletions

View File

@@ -6,4 +6,7 @@ from django.conf.urls.static import static
urlpatterns = [ urlpatterns = [
path('admin/', admin.site.urls), path('admin/', admin.site.urls),
path('api/', include('api.urls')), path('api/', include('api.urls')),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) ]
if settings.DEBUG:
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

View File

@@ -0,0 +1,18 @@
# Generated by Django 5.2.1 on 2025-05-16 08:47
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('sitemanagement', '0007_alter_news_slug_alter_news_titleimage'),
]
operations = [
migrations.AlterField(
model_name='news',
name='slug',
field=models.SlugField(blank=True, editable=False, max_length=500, null=True),
),
]

View File

@@ -37,19 +37,16 @@ class News(models.Model):
return self.title return self.title
def save(self, *args, **kwargs): def save(self, *args, **kwargs):
if not self.pk: # Только при первом сохранении super().save(*args, **kwargs) #сохраняем изображение
super().save(*args, **kwargs) # сохраняем изображение
# генерируем путь к файлу если удалось его сохранить # генерируем путь к файлу если удалось его сохранить
if self.titleImage: if self.titleImage:
self.filename = os.path.basename(self.titleImage.name) self.filename = os.path.basename(self.titleImage.name)
self.path = f'{settings.BASE_URL}{settings.MEDIA_URL}{self.titleImage.name}' self.path = f'{settings.BASE_URL}{settings.MEDIA_URL}{self.titleImage.name}'
super().save(*args, **kwargs) # записываем путь и имя файла в базу super().save(*args, **kwargs) # записываем путь и имя файла в базу
else:
self.filename = ''
self.path = ''
else: else:
super().save(*args, **kwargs) self.filename = ''
self.path = ''
@receiver(pre_save, sender=News) @receiver(pre_save, sender=News)
def generate_slug(sender, instance, **kwargs): def generate_slug(sender, instance, **kwargs):

View File

@@ -59,7 +59,7 @@ export interface NewsItem {
id: number id: number
title: string title: string
content: string content: string
image: string titleImage: string
slug: string slug: string
} }

View File

@@ -20,7 +20,12 @@ const News: React.FC<NewsProps> = ({ news }) => {
<div className="flex flex-col bg-white rounded-2xl shadow-md overflow-hidden hover:shadow-2xl transition-shadow duration-500 p-6"> <div className="flex flex-col bg-white rounded-2xl shadow-md overflow-hidden hover:shadow-2xl transition-shadow duration-500 p-6">
<div className="relative h-[200px]"> <div className="relative h-[200px]">
<Image <Image
src={item.image} src={
item.titleImage.startsWith('http')
? item.titleImage
: `http://127.0.0.1:8000${item.titleImage}` ||
'/placeholder-image.jpg'
}
alt={item.title} alt={item.title}
fill fill
className="object-cover rounded-2xl" className="object-cover rounded-2xl"

View File

@@ -1,5 +1,5 @@
'use client' 'use client'
import { useState } from 'react' import React, { useState } from 'react'
interface ShowMoreProps { interface ShowMoreProps {
text?: string text?: string

View File

@@ -10,6 +10,16 @@ const nextConfig: NextConfig = {
protocol: 'https', protocol: 'https',
hostname: 'via.placeholder.com', hostname: 'via.placeholder.com',
}, },
{
protocol: 'http', // для локал девеломпента
hostname: '127.0.0.1',
port: '8000',
pathname: '/media/uploads/**',
},
{
protocol: 'https',
hostname: 'tripwb.com',
},
], ],
}, },
} }