[REAL Python – Django] – “Django – django-ckeditor 폼에 적용하기”
[REAL Python – Django] – “Django – django-ckeditor 폼에 적용하기”
5월 14, 2022
작업 전 발생한 문제
위는 첫 번째 카테고리에 속한 게시물들을 모두 보여주는 URL패턴이고, 아래는 새 포스트를 작성하기 위해서 새로 만든 UR패턴입니다.
생각치 못한 문제였는데, 만약 blog/create_post
를 브라우저에서 요청하면 찾을 수 없는 쿼리라는 에러 메시지가 발생한다는 것이었습니다. 생각해 보면 당연한 문제입니다. create_post
라는 것이 1차 카테고리에 속한 모든 게시물들을 보여주라는 것인지, 새로운 포스트를 생성하라는 것인지를 당연히 모르겠죠. URL패턴을 작성할 때 이 부분을 고려하지 못했던 것 같습니다.
기본적으로 맨 처음부터 무엇이든지 될 수 있는 문자열을 URL에 받아서 생긴 문제이므로 위처럼 새로운 코드를 추가함으로서 해결했습니다. 그런데, 실력의 부재인 것 같아서 참 마음이 아픕니다…;;
Django-ckeditor
를 form에 적용시켜 보자.
위의 사진과 단어 순서가 다름에 주의!
# views.py
class PostCreateView(CreateView):
template_name = 'blog/post_form.html'
success_url = '/blog/'
form_class = PostForm
위와 같은 코드를 작성해줍니다. form_class
를 위해서 forms.py
를 하나 만들어 준 다음,
# forms.py
from django import forms
from .models import Post
class PostForm(forms.ModelForm):
class Meta:
model = Post
fields = ['title', 'subtitle', 'head_image', 'content', 'category']
forms.py
에 위의 코드를 작성해줍니다.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Create new post</title>
</head>
<body>
<form method="post">
{% csrf_token %}
{{ form.media }}
{{ form.as_p }}
<input type="submit" value="Save">
</form>
</body>
</html>
템플릿도 작성해 주면..~
물론 이대로 사용하지는 않을 겁니다. form에 대한 공부를 조금 더 해 보고, 커스터마이징 해 보는 것으로~