python manage.py makemigrations
python manage.py migrate
위 명령어를 이용해 tweet 모델을 DB에 저장했다.
같은 url이라도 접근 방식에 따라 다른 기능을 수행한다.
GET
우리가 데이터를 보는 것POST
우리가 작성한 후 보내는 것 <div class="media-body">
<h5 class="mt-0">나의 이야기를 적어주세요</h5>
<p>
<form action="/tweet/" method="post"> # form (글 적는 공간) 정보 필요
{% csrf_token %} # form 안에는 암호화 정보 포함해야
<div class="form-group mb-2">
<textarea class="form-control" style="resize: none" name='my-content'
id="my-content"></textarea>
</div>
<button type="submit" class="btn btn-primary" style="float:right;">작성하기
</button>
</form>
</p>
</div>
/tweet/ url로, POST로 보내준다고 폼을 설정.
그 url에 해당하는 view를 만들어야.
textarea, id="my-content"
가 tweet/views.py로 넘겨주는 부분이다.
GET만 있는데 POST를 추가한다.
from django.shortcuts import render, redirect
from .models import TweetModel # 추가
# ...
def tweet(request):
if request.method == 'GET':
user = request.user.is_authenticated
if user:
return render(request, 'tweet/home.html')
else:
return redirect('/sign-in')
elif request.method == 'POST': # 글 + 글을 작성한 사용자까지 저장한다.
user = request.user
my_tweet = TweetModel()
my_tweet.author = user
my_tweet.content = request.POST.get('my-content', '')
my_tweet.save()
return redirect('/tweet')