จะเปลี่ยนตำแหน่งรูปภาพเริ่มต้นใน Django ImageField ได้อย่างไร

มีปัญหาในการพยายามเปลี่ยนตำแหน่งที่ Django ค้นหารูปภาพเริ่มต้นใน ImageField ฉันกำลังพยายามจัดเก็บรูปภาพเริ่มต้นภายในโฟลเดอร์ในไฟล์ "สื่อ" ของฉัน

รหัสจาก models.py ด้านล่าง:

from django.db import models
from django.contrib.auth.models import User

class Profile(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    image = models.ImageField(default='profile_pics/default.jpg', upload_to='profile_pics')

เมื่อฉันโหลดหน้าเว็บ ฉันได้รับข้อผิดพลาด 404:

ไม่พบ: /media/default.jpg [21/Apr/2020 18:11:48] "GET /media/default.jpg HTTP/1.1" 404 1795

มีความคิดเห็นเกี่ยวกับวิธีเพิ่มชิ้นส่วน "profile_pics" ลงในเส้นทางอย่างไร


person tsmith41094    schedule 21.04.2020    source แหล่งที่มา


คำตอบ (2)


เพิ่มเส้นทางสื่อให้กับ urlpatterns ของคุณในโหมด DEBUG

if settings.DEBUG:
    urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
person EL hassane    schedule 21.04.2020
comment
ฉันมีเส้นทางนั้นใน urlpatterns ของฉัน ทุกอย่างทำงานได้ดีหากฉันใช้บัญชีที่ฉันตั้งค่าไว้และมีรูปภาพให้ใช้ ฉันไม่สามารถทำงานได้เมื่อฉันต้องการให้มันกลับไปเป็นค่าเริ่มต้น - person tsmith41094; 22.04.2020

คุณต้องคัดลอกรูปภาพด้วย default.jpg ในไดเร็กทอรี media/profile_pics และใช้เป็นรูปภาพเริ่มต้นของคุณสำหรับผู้ใช้

person Ali Rn    schedule 21.04.2020
comment
ไม่แน่ใจว่าฉันเข้าใจ ฉันมีรูปภาพชื่อ default.jpg บันทึกไว้ในโฟลเดอร์ profile_pics ในไดเร็กทอรีสื่อ ไม่รู้ว่าเกิดอะไรขึ้น - person tsmith41094; 22.04.2020
comment
ฉันเพิ่งสังเกตเห็นว่าคุณเรียกรูปภาพของคุณด้วยลิงก์ที่ไม่ถูกต้อง ลิงก์ของคุณคือ /media/default.jpg แต่รูปภาพของคุณอยู่ที่ /media/profile_pics/default.jpg เรียกรูปภาพของคุณด้วยลิงก์ที่ถูกต้อง และมันจะใช้งานได้ ;) - person Ali Rn; 23.04.2020