티스토리 뷰
기존 장고 프로젝트에서 새 글을 작성해봅시다. 처음 짜놓은 모델을 바탕으로 글 쓰는 법만 간단히 소개하므로 추가적인 모델을 만들어 새로운 글을 만들거나 새로운 파일을 올리면 됩니다!
우선 url부터 짜봅시다. urls.py의 urlpatterns에 아래를 추가합니다.
path('create/',views.create, name="create")
그리고 views를 건들기 전 model에 어떤것이 있는지 확인하면 다음과 같습니다.
class Post(models.Model):
title = models.CharField(max_length=20)
body = models.TextField()
date = models.DateTimeField(default=timezone.now)
새 글을 쓸 때 title과 body 부분만 입력하도록 하고 date는 새 글을 쓰는 시점으로 자동 저장되도록 합시다.
이제 views를 아래와 같이 작성합니다.
def create(request):
if request.method=="POST":
post = Post()
post.title = request.POST['title']
post.body = request.POST['body']
post.date = timezone.now()
post.save()
return redirect('/detail/'+str(post.id),{'post':post})
else:
post = Post()
return render(request,'create.html',{'post':post})
method가 POST 방식으로 내가 입력한 무언가를 넘겨준다면 기존 모델의 title, body, date 값을 저장시킨 뒤 해당 detail 페이지로 보냅니다. POST 방식으로 넘겨준게 없다면, 즉, 새 글 작성하는 첫 클릭 시에는 create.html을 넘겨줍니다.
create.html은 간단하게 다음과 같이만 써줍시다.
{% extends 'base.html' %}
{% block content %}
<div class="container">
<form method="POST">
{% csrf_token %}
제목 :
<input name="title" type="text" value="">
<br><br>
내용 :
<textarea cols=50 rows=20 name="body"></textarea>
<br><br>
<input class="btn btn-primary" type="submit" value="글 작성">
</form>
</div>
{% endblock %}
이제 결과를 확인하면 다음과 같습니다.
대충 만들긴했지만, 새로 글을 작성하는 페이지를 만들었습니다.
gdgd라는 이름으로 새로운 글이 만들어졌습니다. (ㅎㅇㅎㅇ 로 할려했는데 영어였네요 ㅎㅎㅎ)
'django' 카테고리의 다른 글
django / 글 수정, 삭제 (0) | 2020.12.25 |
---|---|
django / 사진 업로드 (media) (0) | 2020.12.25 |
django / url 관리 (0) | 2020.12.04 |
django / base.html 만들기 (템플릿 상속) (0) | 2020.12.03 |
django / detail 페이지 만들기 (링크 연결+pk) (0) | 2020.12.03 |
댓글