ذخیره نشدن عکس زمانی که از فرم آپلود میکنم
سلام استاد.خدا قوت.
وقتی از طریق پنل ادمین جنگو عکس آپلود میکنم هیچ مشکلی به وجود نمیاد و عکس درست توی مسیری که توی upload_to گفتم قرار میگیره ولی وقتی از طریق فرمی که خودم توی پروژه ساختم وقتی عکس رو آپلود میکنم به مشکل بر میخورم.فهمیدم اصلا عکس رو توی مسیر مورد نظر ذخیره نمیکنه و نشون نمیده.چطوری باید درستش کرد؟
در اصل همه اطلاعات رو از دیتا بیس دریافت میکنه به درستی نمایش داده میشه به جز اون عکسی که از طریق فرم آپلود کردم.
اسکرین شات رو واستون آپلود کردم نگاه کنید.پروژه هم روی یک هاست رایگان آپلود کردم تا کدهامو ببینید اگه زحمتی نیست.لینکشو این پایین میزارم
متشکرم استاد
پاسخ ها
جواد ابوترابی
سلام دوست عزیز تنظیمات url را انجام دادید یا نه ؟؟ و اینکه قسمت settings.py را چطور انجام دادید یا خیر ؟؟
بله آقای ابوترابی همه تنظیمات رو اعمال کردم
جواد ابوترابی
دوست عزیز ببین با این دستور کارت راه میافته {{ img.url.نام دیکشنری که به html ارسال می کنید }}
فایل های settings.py و models.py و views.py و urls.py پروژه خود را عکس بگیرید ارسال کنید در فایل ضمیمه تا بررسی کنم فایل html را هم همین طور
امیرحسین امیری
سلام دوست عزیز
برای اینکه تصویر رو نمایش بدید اینگونه آدرس دهی اشتباهه
شما نمیتونید تصاویری که توی پوشه ی مدیا ذخیره میشه به این صورت توی تمپلیت فراخونی کنی
باید از طریق آبجکت های خودت اینکار رو انجام بدی
post.image.url
سلام و عرض ادب
فکر کنم متوجه صحبتم نشدید
من گفتم وقتی از پنل ادمین عکس آپلود میکنم همه چیز اوکیه و به درستی توی تمپلیت نمایش میده.همه تنظیمات پروژه هم طبق آموزش جلو رفتم.
اما زمانی که از فرم html که ساختم وقتی عکس آپلود میکنم توی آدرس دهی به مشکل میخوره و اصلا آپلود نمیشه
پروژه رو توی گوگل وان درایو آپلود کردم،اگه زحمتی نیست یه نگاه بهش بندازید مشکل رو بگید.متشکرم
https://drive.google.com/file/d/1F2YUZMzfISiBhqJhje27eKmHmVAafIGT/view?usp=sharing
accounts_app --→ views -→ addteacher
جواد ابوترابی
سلام خوبی داداش
من پروژه شما را بررسی کردم و ایرادات خیلی خیلی زیادی داره
ابتدا در تنظیمات پروژه شما چرا این دستور را استفاده کردید from os import path نیازی به این نیست شما فقط باید import os را استفاده کنید
دوم در فایل urls.py متن static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)+ را شما اصلا استفاده نکردید و حتی کلاسهای مربوط را import نکردید و حتی از دستور incluod نیز استفاده نکردید برای app های پروژه تان
چند مورد دیگر هم هست که شما سعی کنید یکبار دیگه قسمتهای مربوط را ببینید و پروژه ای جدید بزنید
سلام آقای ابوترابی عزیز .حالتون چطوره؟
ممنون از اینکه وقت گذاشتی بررسی کردی
ولی چون خیلی متعجب شدم از حرفاتون زود قبل از صبحونه خوردن پریدم پشت سیستم همه چیزو چک کنم ببینم داستان چیه!!!!!
همین الان پروژه جلوم بازه
اول اینکه 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 رو طبق چیزی که شما گفتید تغییر دادم ولی مشکل حل نشد!!!!
بعدشم الزاما دلیل نمیشه هر چیزی که یه مدرس توی آموزشش میگه تنهاترین روش و بهترین روش ممکن باشه.خوده استاد امیری بارها گفتند به آموزش های من اکتفا نکنید
من آموزش رو بارها دقیق میبینم و خوب تمرین میکنم.الان هم پروژه سایت شخصی خودمو کامل کد زدم به بدون مشکل بالا اوردم.همه امکاناتی که تا الان توی آموزش گفته شد و حتی بیشتر از اون رو درونش قرار دادم و داره مثل ساعت کار میکنه
حتی اگر مشکلاتی که عرض کردید هم وجود داشت پروژه اصلا ران نمیشد یا اصلا هیچ کدوم از اطلاعات نباید توی دیتا بیس ذخیره میشد نه اینکه فقط مشکل آپلود تصویر از طریق تگ فرم وجود داشته باشه
من آدم مغرور یا انتقاد ناپذیری نیستم ولی حس میکنم واسه خودتون سعی کردید ایراد های بی مورد روی کار بنده بزارید
واسه گفتن بعضی جواب ها میشه راحت گفت بلد نیستم یا باید قبل از جواب دادن درست بررسی کرد
بازم ممنون از وقتی که گذاشتید