Django forumdan file upload olan image media klasorune gelmiyor

views.py:

def create_view(request):
    isim = request.POST.get('addisim')
    soyisim = request.POST.get('addsoyisim')
    baslık = request.POST.get('addbaslık')
    icerik = request.POST.get('addicerik')
    resim = request.POST.get('addresim')

    newPost = Blogum(isim = isim, soyisim = soyisim, baslık = baslık, icerik = icerik, resim = resim)
    newPost.save()
    return redirect('/')

urls.py:

from django.conf.urls.static import static
from blogum.views import *
from django.contrib import admin
from django.urls import path
from django.conf import settings

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', index, name = 'main'),
    path('create', create_view, name = 'create')
]

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

index.html:

{% extends "base.html" %}

{% block body %}

<form class = 'container' action = 'create' method = 'POST'>
{% csrf_token %}
  <div class="form-group">
    <label for="exampleFormControlInput1">İsim</label>
    <input class="form-control" id="formGroupExampleInput" name = 'addisim' type="text" placeholder="İsminizi giriniz">
  </div>
  <div class="form-group">
    <label for="exampleFormControlInput1">Soyisim</label>
    <input class="form-control" id="formGroupExampleInput" name = 'addsoyisim' type="text" placeholder="Soyisminizi giriniz">
  </div>
  <div class="form-group">
    <label for="exampleFormControlInput1">Başlık</label>
    <input class="form-control" id="formGroupExampleInput" name = 'addbaslık' type="text" placeholder="Post başlığınızı giriniz">
  </div>
  <div class="form-group">
    <label for="exampleFormControlTextarea1">İçerik</label>
    <textarea class="form-control" id="formGroupExampleInput" name = 'addicerik' id="exampleFormControlTextarea1" placeholder="Post içeriğinizi giriniz" rows="3"></textarea>
  </div>
  <div class="form-group">
    <label for="exampleFormControlFile1">Bir resim doyası seçiniz</label>
    <input type="file" id="formGroupExampleInput" name = 'addresim' class="form-control-file" id="exampleFormControlFile1">
  </div>
    <button type = 'submit' class = 'btn btn-danger' style = 'margin-top: 20px'>Ekle</button>
</form>

{% endblock body %}

models.py:

from django.db import models

# Create your models here.

class Blogum(models.Model):
    isim = models.CharField(max_length=50, null = False)
    soyisim = models.CharField(max_length=56, null = False)
    tarih = models.DateField(auto_now_add=True, null=True)
    baslık = models.CharField(max_length=100, null = False)
    icerik = models.TextField(null=False)
    resim = models.ImageField(blank = True, null = True)

    def __str__(self):
        return self.isim
 

ekle butonuna bastıgımda yazılar çekiliyor ancak resim dosyası media klasorune alınmıyor nasıl bir yol izlemem lazım.(admin panelinden yazı ve resim ekleyince sorunsuz media klasorune resim ekleniyor)

Pillow kurulu mu ?

‘’‘pip install Pillow’’’

models.py dosyasında ImageField için “upload_to” ile konum belirtebilirsin.

‘’‘resim = models.ImageField(upload_to=‘blog/resim/%Y/%m/%d/’)’’’

1 Beğeni

pillow kurulu hocam 3. satırdaki kodlar standart mı direkt yazsam yani

olduğu gibi de yazabilirsin, istersen

blog/resim/%Y/%m/%d/

yerine, sadece

resimler

yazabilirsin.

Hocam birde models dosyamdaki hatadan kaynaklanmiyordur bence cunku admin panelinden sorunsuz post paylasimi yapiyorum ve resimde kayit oluyor

Html ve views kodlarimda bi sorun olabilir mi

admin paneli hazır geldiğinden orada herşey çalışır vaziyette, o yüzden oradan eklenen fotoğrafın kaydedilmesi normal.

önce benim yazdığımı dene, olmazsa diğer seçenekleri değerlendirirsin,

hem neden (cbv) sınıf tabanlı CRUD kullanmıyorsun ?

Hocam yeni basladim django derslerine ogrendigim kadariyla biseyler yapmak istemistim dediginiz sey mi form diye bir py dosyasi olusturup yapiyoruz formmodelden kalitimliyoruz classı