본문 바로가기
코딩공부

Django 이미지 업로드 / TIL_221005

by Dong_Devlog 2022. 10. 5.

setting.py

STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')

MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')

 

user앱의 models.py

class UserModel(AbstractUser):

    class Meta:
        db_table = "user"
   
    nickname = models.TextField(max_length=16, null=False)
    bio = models.CharField(max_length=500, blank=True, null=True)
    user_images = models.ImageField(upload_to="images", blank=True, null=True)

 

user앱의 form.py

from django.forms import ModelForm
from .models import UserModel

class ImageUploadForm(ModelForm):
    class Meta:
        model = UserModel
        fields = ['nickname', 'bio', 'user_images']

 

user앱의 view.py

def profile(request):
    if request.method == 'POST':
        nickname = request.POST['nickname']
        bio = request.POST['bio']
        img = request.FILES["user_images"]
        user = request.user

        user.nickname = nickname
        user.bio = bio
        user.user_images = img
        user.save()
        return redirect('/profile_page')
    else:
        imageuploadForm = ImageUploadForm
        context = {
            'imageuploadForm': imageuploadForm,
        }
        return render(request, 'imageupload.html', context)

 

댓글