Kali ini saya akan membuat catatan sekaligus tutorial biar saya mudah jika nanti lupa. Syukur-syukur kalau bisa bermanfaat untuk orang lain.
Ok langsung saja disini saya akan membuat tutorial bagaimana cara upload gambar di django admin.
Misal saya punya model Karyawan
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from __future__ import unicode_literals | |
import os | |
from uuid import uuid4 | |
from django.db import models | |
def file_image(instance, filename): | |
ext = filename.split('.')[-1] | |
filename = "%s.%s" % (str(uuid4()), ext) | |
return os.path.join('upload', filename) | |
class Karyawan (models.Model): | |
nama = models.CharField(max_length=100) | |
alamat = models.TextField(blank=True) | |
foto = models.ImageField(upload_to=file_image, verbose_name='Photo', null=True, blank=True) | |
def __unicode__(self): | |
return self.nama |
Pada baris 15 adalah field untuk upload foto yang menggunakan def file_image.
Selanjutnya tambahkan kode berikut pada settings.py pada folder applikasi.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
SITE_ROOT = os.path.realpath(os.path.dirname(__file__)) | |
STATIC_URL = '/static/' | |
STATIC_ROOT = 'static' | |
MEDIA_URL = '/media/' | |
MEDIA_ROOT = os.path.join(SITE_ROOT, 'media') | |
STATICFILES_DIRS = ( | |
os.path.join(BASE_DIR, "assets"), | |
) | |
STATICFILES_FINDERS = ( | |
'django.contrib.staticfiles.finders.FileSystemFinder', | |
) |
Selanjutnya ke commad masuk ke aplikasi dan jalankan ./manage.py collectstatic
Kalau ada css atau js yang tidak jalan seperti pada gambar berikut
Langkah penyelesaiannya adalah masuk ke folder folder_project/local/lib/python2.7/site-packages dan cari file login.css
kemudian cari base dari foldernya. Misal gambar diatas, ambil semua yang ada di folder admin dan pastekan di folder assets yang dibuat sebelumnya.
Kemudian jalankan kembali ./manage.py collectstatic
dan coba kembali.
Coba upload gambar.
Jika terdapat error 404 saat mengakses foto seperti gambar berikut:
Anda dapat menambahkan script berikut di folder_project urls.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from django.conf import settings | |
from django.conf.urls.static import static | |
if settings.DEBUG: | |
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) |
Semoga daapt membantu. Kalau ada yang mau ditanyakan bisa langsung di komentar atau ke facebook saya.
0 coment�rios:
Post a Comment
### Saya akan coba merespon komentar baru secepatnya.
### Jangan berkomentar SPAM (promosi, dll,)
### Jangan komentar yang berisi link aktif,
### Mohon Maaf Jika Komentar saya moderasi karena ingin mengantisipasi kemungkinan Spam atau link Aktif