Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 백준
- queryset
- Django
- TMS
- python 3.7
- HTML
- dbadvgrid
- COMMIT
- 델파이
- GIT
- 중복제거
- github
- blog
- python3
- hackerrank
- pythonanywhere
- Visual Studio
- PyCharm
- advColumnGrid
- MSSQL
- rank
- templates
- delphi 10.3
- anaconda3
- Delphi
- declare
- c#
- pyhcarm
- get_object_or_404
- Push
Archives
- Today
- Total
DevHyun
[DevHyun's Blog] Django Form 만들기(일반 사용자가 Post 수정 가능하게 만들기) 본문
Web/Django&Python Blog Projecct
[DevHyun's Blog] Django Form 만들기(일반 사용자가 Post 수정 가능하게 만들기)
D3V3L0P3R 2020. 10. 21. 19:41
Django Form 만들기(일반 사용자가 Post 추가 가능하게 만들기) 에서 이어집니다.
장고걸스 코치들과 자원봉사자들의 수고로 번역된 글을 참고하였습니다.
Django Form 이해를 바탕으로 Post 추가 기능을 개발하였으니 수정도 가능하게 개발해보자!!!
1. Blog/templates/Blog/post_detail.html 에서 수정버튼 추가
* Blog/templates/Blog/post_detail.html
{% extends 'Blog/base.html' %}
{% block content %}
<div class="post">
{% if post.published_date %}
<div class="date">
{{ post.published_date }}
</div>
{% endif %}
<a class="btn btn-default" href="{% url 'post_edit' pk=post.pk %}"><span class="glyphicon glyphicon-pencil"></span></a>
<h1>{{ post.title }}</h1>
<p>{{ post.text|linebreaksbr }}</p>
</div>
{% endblock %}
2. Blog/urls.py 에 post_edit.html 경로추가
* Blog/urls.py
...
..
.
urlpatterns = [
...
..
.
path('post/<int:pk>/edit/', views.post_edit, name='post_edit'),
]
3. Blog/views.py 에서 View 만들기!
* Blog/views.py
...
..
.
def post_edit(request, pk):
post = get_object_or_404(Post, pk=pk)
if request.method == "POST":
form = PostForm(request.POST, instance=post)
if form.is_valid():
post = form.save(commit=False)
post.author = request.user
post.published_date = timezone.now()
post.save()
return redirect('post_detail', pk=post.pk)
else:
form = PostForm(instance=post)
return render(request, 'Blog/post_edit.html', {'form': form})
* post_new View와 post_edit View가 다른점!(따로 설명이 없어 주관적인 견해가 섞임! 지적 환영!!)
- 선언 시 pk를 추가한다 : 특정 게시물만 수정해야 하기 때문에 url로부터 pk를 받아서 처리.
- get_object_or_404(Post, pk=pk)를 호출 : 수정하고자 하는 글을 Post 모델 인스턴스(instance)로 가져와서 처리 (pk로 원하는 글을 찾을 수 있음)
4. Run -> 포스트 저장, 수정 해보기!
++ Django Girls 튜토리얼엔 없는 내용!
5. 타이틀 누르면 Home 화면(Post list)으로 이동하기!
* Blog/templates/Blog/base.html
* 제목 div에 post_list url 추가! 참쉽죠?
<html>
...
..
.
<body>
<div class ="page-header">
...
..
.
<h1><a href="{% url 'post_list' %}">DevHyun's Blog</a></h1>
</div>
...
..
.
</body>
</html>
'Web > Django&Python Blog Projecct' 카테고리의 다른 글
[DevHyun's Blog] Django&Python으로 만든 Blog 개선하기! (0) | 2020.10.27 |
---|---|
[DevHyun's Blog] Django&Python으로 만든 Blog에 로그인한 사용자만 글쓰게 만들기! (0) | 2020.10.21 |
[DevHyun's Blog] Django Form 만들기(일반 사용자가 Post 추가 가능하게 만들기) (0) | 2020.10.21 |
[DevHyun's Blog] Django&Python으로 만든 Blog App 확장(extending)하기 (0) | 2020.10.19 |
[DevHyun's Blog] Django Template 확장하기(*재사용 가능하게끔 만들기) (0) | 2020.10.19 |
Comments