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 = [
path('admin/', admin.site.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
def save(self, *args, **kwargs):
if not self.pk: # Только при первом сохранении
super().save(*args, **kwargs) # сохраняем изображение
# генерируем путь к файлу если удалось его сохранить
if self.titleImage:
self.filename = os.path.basename(self.titleImage.name)
self.path = f'{settings.BASE_URL}{settings.MEDIA_URL}{self.titleImage.name}'
super().save(*args, **kwargs) # записываем путь и имя файла в базу
else:
self.filename = ''
self.path = ''
super().save(*args, **kwargs) #сохраняем изображение
# генерируем путь к файлу если удалось его сохранить
if self.titleImage:
self.filename = os.path.basename(self.titleImage.name)
self.path = f'{settings.BASE_URL}{settings.MEDIA_URL}{self.titleImage.name}'
super().save(*args, **kwargs) # записываем путь и имя файла в базу
else:
super().save(*args, **kwargs)
self.filename = ''
self.path = ''
@receiver(pre_save, sender=News)
def generate_slug(sender, instance, **kwargs):

View File

@@ -59,7 +59,7 @@ export interface NewsItem {
id: number
title: string
content: string
image: string
titleImage: 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="relative h-[200px]">
<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}
fill
className="object-cover rounded-2xl"

View File

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

View File

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