اواجهة مشكلة عدم عمل ملفات media
settings.py:
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/5.0/howto/static-files/
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
STATIC_URL = 'static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'cyberZ_website/static/')
]
# Media files
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'
urls.py الخاص بالمشروع:
from django.contrib import admin
from django.urls import include, path
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('home.urls')),
path('blog/', include('blog.urls')),
path('dashboard/', include('dashboard.urls')),
]
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
models.py:
def course_image_upload_path(instance, filename):
"""يحدد مسار حفظ الصور داخل مجلد Courses حسب السنة والشهر واليوم"""
return os.path.join("Courses", now().strftime("%Y/%m/%d"), filename)
class Course(models.Model):
name = models.CharField(max_length=200) # اسم الدورة
price = models.DecimalField(max_digits=10, decimal_places=2) # سعر الدورة
start_date = models.DateField() # تاريخ بدء الدورة
duration_weeks = models.PositiveIntegerField(default=8) # مدة الدورة بالأسابيع
language = models.CharField(max_length=50, default='English') # لغة الدورة
schedule = models.CharField(max_length=100, default="6:00 PM - 9:00 PM EST") # وقت الدورة
mode = models.CharField(max_length=50, default="Online") # طريقة الدورة (أونلاين / حضورياً)
image = models.ImageField(upload_to=course_image_upload_path, default='default_course.jpg') # صورة الدورة
created_at = models.DateTimeField(auto_now_add=True) # وقت إنشاء الدورة
what_will_you_learn = models.TextField(default='[]') # ماذا سيتعلم الطلاب؟
def __str__(self):
return f"{self.name} ({self.start_date.strftime('%B %Y')})"
views.py:
def home(request):
# courses section
courses = Course.objects.all().order_by('-created_at')
context = {
'stripe_publishable_key': settings.STRIPE_PUBLISHABLE_KEY,
'recaptcha_site_key': settings.RECAPTCHA_PUBLIC_KEY, # إرسال المفتاح العام للقالب
'courses': courses,
}
return render(request, 'pages/home.html', context)
هنا الاستدعاء في ملف html و انا خاله في حلقة {% for course in courses %}
<img class="course-image" src="{{ course.image.url }}" alt="{{ course.name }}">
هذه الخطأ الي تظهر لي و الصورة لا تظهر
WARNING "GET /static/images/cyberZlogo HTTP/1.1" 404 179
WARNING Not Found: /media/default_course.jpg
WARNING Not Found: /media/Courses/2025/03/28/python.png
WARNING "GET /media/default_course.jpg HTTP/1.1" 404 179
WARNING "GET /media/Courses/2025/03/28/python.png HTTP/1.1" 404 179
WARNING Not Found: /media/default_course.jpg
WARNING "GET /media/default_course.jpg HTTP/1.1" 404 179
WARNING Not Found: /media/Courses/2025/03/28/python.png
WARNING "GET /media/Courses/2025/03/28/python.png HTTP/1.1" 404 179