MEDIA_ROOT dan Pengunggahan Berkas
Terima dan simpan berkas yang diunggah pengguna
MEDIA_ROOT dan Pengunggahan Berkas adalah pelajaran Django Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Django Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Django Academy mencakup 4 pelajaran total.
Bagian dari pelajaran ini belum diterjemahkan dan ditampilkan dalam bahasa Inggris.
Static vs Media
Static files ship with your code. Media files are uploaded by your users at runtime, like avatars or documents, and they need their own home.
The MEDIA_ROOT Setting
MEDIA_ROOT is the absolute folder on disk where Django saves every uploaded file. It lives outside your source code tree.
MEDIA_ROOT = BASE_DIR / 'media'The MEDIA_URL Setting
MEDIA_URL is the public prefix browsers use to request an uploaded file, just like STATIC_URL does for static assets.
MEDIA_URL = '/media/'Add a FileField
To accept an upload, give your model a FileField. Django stores the file on disk and keeps only its path in the database.
class Resume(models.Model):
doc = models.FileField(upload_to='resumes/')The upload_to Path
The upload_to argument is a subfolder under MEDIA_ROOT. Use it to keep uploads tidy, like grouping all resumes together.
Dynamic upload_to
Pass a function to upload_to when the path should depend on the instance, such as foldering files per user.
def user_dir(instance, filename):
return f'user_{instance.user.id}/{filename}'Forms Need enctype
An HTML form that uploads files must set enctype to multipart/form-data, or the browser sends no file bytes at all.
<form method="post" enctype="multipart/form-data">Read request.FILES
Uploaded bytes do not arrive in request.POST. They land in request.FILES, which you pass into your form to bind them.
form = ResumeForm(request.POST, request.FILES)Get the URL
Once saved, every file field exposes a .url property that builds the MEDIA_URL link you drop into a template.
<a href="{{ resume.doc.url }}">Download</a>Validate Uploads
Never trust raw uploads. Limit file size and type in your form's clean method to keep malicious files out. 🔒
Keep Media Private
MEDIA_ROOT should sit outside your repo and never be served by collectstatic. User files and code stay clearly separate.
Quick Check
Let us check where uploaded file data arrives in a view.
Recap
You learned that MEDIA_ROOT stores user uploads, that FileField with upload_to organizes them, and that request.FILES carries the bytes. 📁
Pertanyaan yang Sering Diajukan
Apakah pelajaran “MEDIA_ROOT dan Pengunggahan Berkas” gratis?
Ya — teks lengkap “MEDIA_ROOT dan Pengunggahan Berkas” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Django Academy, upgrade ke CoddyKit PRO. Kursus Django Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “MEDIA_ROOT dan Pengunggahan Berkas”?
Terima dan simpan berkas yang diunggah pengguna Kamu berlatih Django Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Django Academy?
Tidak diperlukan pengalaman sebelumnya. Django Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.
Berapa lama pelajaran “MEDIA_ROOT dan Pengunggahan Berkas” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Django Academy ini?
Ya. Setiap pelajaran Django Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- STATICFILES dan Tag static
- collectstatic untuk Produksi
- MEDIA_ROOT dan Pengunggahan Berkas
- ImageField dan Menyajikan Unggahan