Back
Syntax
Study
Editor
Mode:
HTML
CSS
JavaScript
PHP
Reset
Run »
HTML / CSS / JS
# blog/models.py — model with image upload from django.db import models class Post(models.Model): title = models.CharField(max_length=200) body = models.TextField() cover_img = models.ImageField(upload_to='posts/%Y/%m/', blank=True, null=True) # blog/forms.py — form with file field from django import forms from .models import Post class PostWithImageForm(forms.ModelForm): class Meta: model = Post fields = ['title', 'body', 'cover_img'] # blog/views.py — handling file upload from django.shortcuts import render, redirect from .forms import PostWithImageForm def post_create(request): if request.method == 'POST': # Must pass request.FILES for file uploads form = PostWithImageForm(request.POST, request.FILES) if form.is_valid(): post = form.save(commit=False) post.author = request.user post.save() return redirect('blog:post-detail', pk=post.pk) else: form = PostWithImageForm() return render(request, 'blog/post_form.html', {'form': form}) # mysite/settings.py — media file settings # MEDIA_ROOT = BASE_DIR / 'media' # MEDIA_URL = '/media/' # mysite/urls.py — serve media in development # from django.conf import settings # from django.conf.urls.static import static # urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
Result
Open