Skip to content

포스트 생성

Post Form

{% extends 'base.html' %}

{% block content %}

<br>
<form action="{% url 'new' %}" method="POST" enctype="multipart/form-data">
    {% csrf_token %}
    <input type="file" name="image">
    <br>
    <textarea name="content" cols="50" rows="10" ></textarea>
    <br>
    <input type="submit" value="글쓰기">
</form>

{% endblock %}

<주요 개념>

Url path

urlpatterns = [
    path('new', page.views.new, name='new'),
    ...
]

View

from django.shortcuts import redirect
from django.utils import timezone

def new(request):
    if request.method == 'POST':
        post = Post()
        post.author = request.user
        post.content = request.POST['content']
        # image 파일이 있으면 post 객체에 저장
        if 'image' in request.FILES:
            post.image = request.FILES['image']
        post.pub_date = timezone.datetime.now()
        post.save()
        return redirect('/detail/'+str(post.id))
    return render(request, 'new.html')

이미지를 저장하기 위해서는 Post 모델 내에 이미지 필드를 추가해야 한다.


Last update : 4 juin 2023
Created : 19 février 2020