ویدیو آموزش آپلود عکس در جنگو
در این ویدیو با نحوه آپلود عکس در جنگو آشنا میشوید. برای اینکار نیازه که چند تا کار انجام بدیم. اول باید مدلمون رو ایجاد کنیم. برای ذخیره عکسهای آپلود شده باید از فیلد ImageField استفاده کنید. مدلی که استفاده میکنیم به شکل زیر خواهد بود:
class First(models.Model):
name = models.CharField(max_length=100)
image = models.ImageField(upload_to='home/%Y/%m/%d/')
نکتهای که باید از کد بالا بدونید این هست که در فیلد ImageField مقدار upload_to مشخص کننده مکانی هست که قراره عکس ذخیره بشه. این مسیر در انتهای MEDIA_ROOT قرار میگیره. پس در فایل settings.py مقادیر زیر رو مینویسیم:
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
بعد از این موارد باید یک فرم ایجاد کنیم و به کاربر نشون بدیم:
from django import forms
class ImageForm(forms.Form):
name = forms.CharField()
image = forms.ImageField()
در مرحله بعد باید در فایل views.py این فرم رو کنترل کنیم:
from django.shortcuts import render, redirect
from .forms import ImageForm
from .models import First
def home(request):
infos = First.objects.all()
if request.method == 'POST':
form = ImageForm(request.POST, request.FILES)
if form.is_valid():
First(name=form.cleaned_data['name'], image=request.FILES['image']).save()
return redirect('home:home')
else:
form = ImageForm()
return render(request, 'home/home.html', {'form':form, 'infos':infos})
اطلاعاتی که کاربر به عنوان فایل در یک فرم ذخیره میکنه در request.FILES ذخیره میشه.
ارسال نظر