1. 게시글 수정페이지로 연결
2. 수정페이지에 해당 데이터 가져오고
3. 수정내용 저장후 홈에 수정된 내용 보여주기
게시글 수정페이지로 연결
1. views.py 작성
def post_edit(request,id):
my_tweet = TweetModel.objects.get(id=id)
return render(request,'tweet/post-edit.html',{'tweet':my_tweet})
2. urls.py 작성
path('tweet/post-edit/<int:id>', views.post_edit, name='post-edit'),
3. html에 연결
{% if tw.author == user %}
# 수정페이지연결
<a class="fs-5" href="/tweet/post-edit/{{tw.id}}" style="margin-left:250px; color: black;"><i class="bi bi-pencil"></i>
<div style="float: right">
# 삭제
<form method="post" action="/tweet/delete/{{tw.id}}">
{% csrf_token %}
<button type="submit" class="btn btn-light" data-bs-toggle="modal" data-bs-target="#exampleModal">
<span class="material-symbols-outlined">delete</span>
</button>
</form>
</div>
</a>
{% endif %}
수정페이지에 해당 데이터 가져오기
html파일 수정
# 이미지
<img class="detail_feed_img " src="{{tweet.image.url}}">
# 작성자
<span id="input_user_id" class="feed_name_txt">{{tweet.author.username}}</span>
# 게시글
<textarea style="height: 330px" id="my-content" class="feed_content_textarea form-control col-sm-4" rows="10"
name='my-content' placeholder="내용을 입력하세요...">{{tweet.content}}</textarea>
수정내용 저장후 홈에 수정된 내용 보여주기
views.py의 post_edit 작성
def post_edit(request,id):
edit_tweet = TweetModel.objects.get(id=id)
if request.method == 'GET':
return render(request,'tweet/post-edit.html',{'tweet':edit_tweet})
else:
edit_tweet.content = request.POST.get('my-content','')
edit_tweet.image = request.FILES.get('image', '')
if edit_tweet.content == '' or edit_tweet.image == '':
edit_tweet = TweetModel.objects.all().order_by('-created_at')
return render(request,'tweet/post-edit.html',{'error':'변경사항을 입력해주세요.','tweet':edit_tweet})
else:
edit_tweet.save()
return redirect('/tweet')
728x90
'프로젝트 > 나혼자 프로젝트' 카테고리의 다른 글
Nadle_초기세팅, 모델, 회원가입/로그인, 음원CRUD (0) | 2022.11.16 |
---|---|
sns 만들기 (댓글기능) (0) | 2022.10.09 |
sns 만들기(게시글 상세페이지 연결, 보여주기) (0) | 2022.10.09 |
sns 만들기(게시글 삭제) (0) | 2022.10.09 |
sns 만들기 (게시글 저장, 보여주기) (1) | 2022.10.08 |
댓글