اذهب إلى المحتوى
  • 0

مشكله في رفع الصور عند استخدام form في Django

Beshoy Ehab3

السؤال

أنا عندي مشكله في رفع الصور و هي عند رفع الصور من قائمة admin يتم التحميل بصوره طبيعيه انما عند رفع الصور من ال form لا يتم رفع اي صوره و يتم استخدام الصوره الافتراضيه

و هذه صور تبين كل الكود 

اول صوره هي ال app

ثاني صوره هي ال form

ثالث صوره هي الداله التي تقوم بعمل بوست

رابع صوره هي صفحة ال html614ee040b17ad_IMG__.thumb.jpg.c45b026f77a10d5c2418befb762f8fce.jpg614ee0413fdee_IMG__.jpg.7087bdb9e9cf576bcc38b09ed8d83dc6.jpg614ee041cf526_IMG__.jpg.8ecb400efd546cf2078c0916db2fd26d.jpg614ee0425bfce_IMG__.jpg.fd454b975d5ad8298440924f95464a62.jpg

تم التعديل في بواسطة Wael Aljamal
توضيح السؤال
رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

هل قمت بإضافة 

static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

إلى urlpatterns، بافتراض أن قيم الثوابت هي على سبيل المثال:

MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')

ثم تأكد من الخطوات التالية:

  1. تمرير request.FILES parameter لحمل ملف الصورة
  2. تعديلك على النموذج بدون عمل تهجير migration
  3. عدم وجود صلاحية ل Django لإنشاء ملف الصورة في المسار
  4. ضمن HTML أرجو وضع الخاصية بالشكل التالي: multipart/form بدل multipart/form-data
  5. تأكد من طول اسم الملف "عدد حروف ملف الصورة"
  6. urlpatterns = [
        # ... بقية URLconf هنا ...
    ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

     

  7. إن كنت تستخدم نسخة قديمة من جانغو، تأكد من احتواء urls.py على 
    python urlpatterns = [] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

     

التوثيق ب static file من هنا: djangoproject/static-files

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 1 ساعة قال Wael Aljamal:

ارجو منك إرفاق الشيفرات البرمجية في محرر الاكواد، بدل الصور في السؤال

لا أستطيع لأنني استخدم الهاتف ولا يوجد في الموقع محرر اكواد الموقع مثل الذي على الكمبيوتر 

يظهر لي خطأ عدم وجود static

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 15 دقائق مضت قال Beshoy Ehab Hafez:

لقد فعلت كل شئ ولم يحدث شئ نفس المشكله موجوده

حاول مشاركة رسالة الخطأ، وأطلعنا على مزيد من التفاصيل

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 3 ساعات قال Wael Aljamal:

حاول مشاركة رسالة الخطأ، وأطلعنا على مزيد من التفاصيل

لقد قرأت من الموقع الرسمي ل dgango و حلل مشكله المديول لكن لا توجد أخطاء و لم تحل مشكلتي مع العلم إصدار Django الخاص بي هو 3.7

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 16 دقائق مضت قال Beshoy Ehab Hafez:

لقد قرأت من الموقع الرسمي ل dgango و حلل مشكله المديول لكن لا توجد أخطاء و لم تحل مشكلتي مع العلم إصدار Django الخاص بي هو 3.7

في PostForm أرجو تمرير request.FILES كوسيط ثاني

form = PostForm(request.POST, request.FILES)

المراجع:

  1. https://docs.djangoproject.com/en/3.2/ref/files/uploads/
  2. https://docs.djangoproject.com/en/3.2/topics/http/file-uploads/#handling-uploaded-files-with-a-model
بتاريخ 5 ساعات قال Beshoy Ehab Hafez:

يظهر لي خطأ عدم وجود static

حل المشكلة هو تضمين:

from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
    # Project url patterns...
]

if settings.DEBUG:
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

على كل حال، تابع توثيق معينـ، ونفذ خطواته لأنه على الأغلب لديك شيئ ناقص، مثل ربط قالب HTML مع دالة رفع الملف..

simple_upload.html

{% extends 'base.html' %}

{% load static %}

{% block content %}
  <form method="post" enctype="multipart/form-data">
    {% csrf_token %}
    <input type="file" name="myfile">
    <button type="submit">Upload</button>
  </form>

  {% if uploaded_file_url %}
    <p>File uploaded at: <a href="{{ uploaded_file_url }}">{{ uploaded_file_url }}</a></p>
  {% endif %}

  <p><a href="{% url 'home' %}">Return to home</a></p>
{% endblock %}
views.py

from django.shortcuts import render
from django.conf import settings
from django.core.files.storage import FileSystemStorage

def simple_upload(request):
    if request.method == 'POST' and request.FILES['myfile']:
        myfile = request.FILES['myfile']
        fs = FileSystemStorage()
        filename = fs.save(myfile.name, myfile)
        uploaded_file_url = fs.url(filename)
        return render(request, 'core/simple_upload.html', {
            'uploaded_file_url': uploaded_file_url
        })
    return render(request, 'core/simple_upload.html')

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...