ذخیره نشدن عکس زمانی که از فرم آپلود میکنم

سوال شده توسط:

تاریخ ثبت: ۱۴۰۰/۱۱/۰۵

بازدید: 1,104

پاسخ: 7

تگ: Django


سلام استاد.خدا قوت.

وقتی از طریق پنل ادمین جنگو عکس آپلود میکنم هیچ مشکلی به وجود نمیاد و عکس درست توی مسیری که توی upload_to گفتم قرار میگیره ولی وقتی از طریق فرمی که خودم توی پروژه ساختم وقتی عکس رو آپلود میکنم به مشکل بر میخورم.فهمیدم اصلا عکس رو توی مسیر مورد نظر ذخیره نمیکنه و نشون نمیده.چطوری باید درستش کرد؟

در اصل همه اطلاعات رو از دیتا بیس دریافت میکنه به درستی نمایش داده میشه به جز اون عکسی که از طریق فرم آپلود کردم.

اسکرین شات رو واستون آپلود کردم نگاه کنید.پروژه هم روی یک هاست رایگان آپلود کردم تا کدهامو ببینید اگه زحمتی نیست.لینکشو این پایین میزارم

متشکرم استاد

https://file.io/NRdJ3vDTeKdv

پاسخ ها
user

جواد ابوترابی

سلام دوست عزیز تنظیمات url  را انجام دادید یا نه ؟؟ و اینکه قسمت settings.py  را چطور انجام دادید یا خیر ؟؟

 

user

بله آقای ابوترابی همه تنظیمات رو اعمال کردم

user

جواد ابوترابی

دوست عزیز ببین با این دستور کارت راه میافته {{  img.url.نام دیکشنری که به html  ارسال می کنید    }}

فایل های settings.py و models.py و views.py  و urls.py پروژه خود را عکس بگیرید ارسال کنید در فایل ضمیمه تا بررسی کنم فایل html  را هم همین طور 

user

امیرحسین امیری

سلام دوست عزیز

برای اینکه تصویر رو نمایش بدید اینگونه آدرس دهی اشتباهه

شما نمیتونید تصاویری که توی پوشه ی مدیا ذخیره میشه به این صورت توی تمپلیت فراخونی کنی

باید از طریق آبجکت های خودت اینکار رو انجام بدی

post.image.url

user

سلام  و عرض ادب

فکر کنم متوجه صحبتم نشدید  

من گفتم وقتی از پنل ادمین عکس آپلود میکنم همه چیز اوکیه و به درستی توی تمپلیت نمایش میده.همه تنظیمات پروژه هم طبق آموزش جلو رفتم.

اما زمانی که از فرم html که ساختم وقتی عکس آپلود میکنم توی آدرس دهی به مشکل میخوره و اصلا آپلود نمیشه

پروژه رو توی گوگل وان درایو آپلود کردم،اگه زحمتی نیست یه نگاه بهش بندازید مشکل رو بگید.متشکرم

https://drive.google.com/file/d/1F2YUZMzfISiBhqJhje27eKmHmVAafIGT/view?usp=sharing

accounts_app --→ views -→ addteacher

user

جواد ابوترابی

سلام خوبی داداش 

من پروژه شما را بررسی کردم و ایرادات خیلی خیلی زیادی داره 

ابتدا در تنظیمات پروژه شما چرا این دستور را استفاده کردید from os import path  نیازی به این نیست شما فقط باید import os  را استفاده کنید 

دوم در فایل urls.py  متن static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)+ را شما اصلا استفاده نکردید و حتی کلاسهای مربوط را import نکردید و حتی از دستور incluod  نیز استفاده نکردید برای app  های پروژه تان

چند مورد دیگر هم هست که شما سعی کنید یکبار دیگه قسمتهای مربوط را ببینید و پروژه ای جدید بزنید 

user

سلام آقای ابوترابی عزیز .حالتون چطوره؟

ممنون از اینکه وقت گذاشتی بررسی کردی

ولی چون خیلی متعجب شدم از حرفاتون زود قبل از صبحونه خوردن پریدم پشت سیستم همه چیزو چک کنم ببینم داستان چیه!!!!!

همین الان پروژه جلوم بازه

اول اینکه import os  با from os import path هیچ منافاتی برای کار ما نداره و مشکلی که عرض کردمو حل نمیکنه. خودم قبلا تستش کردم :) .توی رفرنس ها بعضی ها از این روش آدرس دهی که بنده استفاده کردم قابل مشاهده هستش.

من از دستور include واسه تمامی آدرس دهی app ها استفاده کردم!!!!! تو رو خدا شما کجای فایل urls.py دیدید که include استفاده نشده؟! :| 

یعنی اگه استفاده نمیکردم خودم تعجب میکردم و پروژه موقع ران گرفتن به مشکل بر میخورد!!!

والا من از تابع static استفاده کردم ولی تعجب میکنم شما چرا ندیدینش :D 

 

این کد منه توی فایل urls.py:

from django.contrib import admin
from django.urls import path,include
from django.conf.urls.static import static
from .settings import MEDIA_URL,MEDIA_ROOT


urlpatterns = [
    path('admin/', admin.site.urls),
    path('',include('home_app.urls')),
    path('accounts/',include('accounts_app.urls')),
]   + static(MEDIA_URL,document_root=MEDIA_ROOT)


 

توی بعضی رفرنس ها به این صورت استفاده شده. و دیگه مثل شما از ماژول settings توی آدرس دهی تابع static استفاده نشده و با چیزی که شما گفتید تفاوتی نداره برای ما. باز طبق حرف بالا باید بگم مشکلی رو حل نمیکنه.این مورد هم قبلا تست کردم :) 

در ضمن برای فایل اصلی urls پروژه فقط باید از متد های static و include استفاده کرد.فکر کنم شما فایل urls.py یکی از اپ ها رو اشتباهی با فایل urls پروژه باز کردید و به این نتیجه رسیدید که من نه از include استفاده کردم نه از ماژول یا کلاسی ادد کردم

حتی واسه اطمینان هم کدهامو همین لحظه که دارم تایپ میکنم، آدرس دهی ماژول ها و تابع static رو طبق چیزی که شما گفتید تغییر دادم ولی مشکل حل نشد!!!!

بعدشم الزاما دلیل نمیشه هر چیزی که یه مدرس توی آموزشش میگه تنهاترین روش و بهترین روش ممکن باشه.خوده استاد امیری بارها گفتند به آموزش های من اکتفا نکنید 

من آموزش رو بارها دقیق میبینم و خوب تمرین میکنم.الان هم پروژه سایت شخصی خودمو کامل کد زدم به بدون مشکل بالا اوردم.همه امکاناتی که تا الان توی آموزش گفته شد و حتی بیشتر از اون رو درونش قرار دادم و داره مثل ساعت کار میکنه

حتی اگر مشکلاتی که عرض کردید هم وجود داشت پروژه اصلا ران نمیشد یا اصلا هیچ کدوم از اطلاعات نباید توی دیتا بیس ذخیره میشد نه اینکه فقط مشکل آپلود تصویر از طریق تگ فرم وجود داشته باشه

من آدم مغرور یا انتقاد ناپذیری نیستم ولی حس میکنم واسه خودتون سعی کردید ایراد های بی مورد روی کار بنده بزارید

واسه گفتن بعضی جواب ها میشه راحت گفت بلد نیستم یا باید قبل از جواب دادن درست بررسی کرد

بازم ممنون از وقتی که گذاشتید

برای ثبت پاسخ باید خود شوید

محبوب ترین مقالات