Django Section 11

yoodeit·2025년 8월 25일
0

일단 만드는 어무해

목록 보기
20/21
post-thumbnail

WYSIWYG로 게시판에 스타일기능 추가하기

1) articleapp/forms.py

기존에 정의해둔 form에서 수정이 필요하다.
캐릭터필드를 커스터마이징해서 그 정보를 넘겨주기 위함.

content = forms.CharField(widget=forms.Textarea(attrs={'class': 'editable text-left',
                                                           'style' : 'height: auto;'}))

2) create.html

<script src="//cdn.jsdelivr.net/npm/medium-editor@5.23.2/dist/js/medium-editor.min.js"></script>
<link rel="stylesheet" href="//cdn.jsdelivr.net/npm/medium-editor@5.23.2/dist/css/medium-editor.min.css" type="text/css" media="screen" charset="utf-8">

<script>var editor = new MediumEditor('.editable');</script>


그러면 이런 식으로 적용이 가능한데...
문제는 결과물이다.

3) articleapp/detail.html

4) updateview도 마찬가지로

{% extends 'base.html' %}
{% load django_bootstrap5 %}

{% block content %}
<script src="//cdn.jsdelivr.net/npm/medium-editor@5.23.2/dist/js/medium-editor.min.js"></script>
<link rel="stylesheet" href="//cdn.jsdelivr.net/npm/medium-editor@5.23.2/dist/css/medium-editor.min.css" type="text/css" media="screen" charset="utf-8">

    <div style="text-align: center; max-width: 500px; margin: 4rem auto;">
        <div class="mb-4">
            <h1>Article update</h1>
        </div>
        <form action="{% url 'articleapp:update' pk=target_article.pk %}" method="post" enctype="multipart/form-data">
            {% csrf_token %}
            {% bootstrap_form form %}
            <input type="submit" class="btn btn-dark rounded-pill col-6 mt-3">
        </form>
    </div>

<script>var editor = new MediumEditor('.editable');</script>
{% endblock %}

5) project 안골라도 업로드 가능하도록 하기

class ArticleCreationForm(ModelForm):
    
    content = forms.CharField(widget=forms.Textarea(attrs={'class': 'editable text-left',
                                                           'style' : 'height: auto;'}))
    
    project = forms.ModelChoiceField(queryset=Project.objects.all(), required=False)
    class Meta:
        model = Article
        fields=['title','image', 'project', 'content']

글쓸 때 프로젝트명 보이게 하기

class Project(models.Model):
    image = models.ImageField(upload_to='project/', null=False)
    title = models.CharField(max_length=20, null=False)
    description = models.CharField(max_length=200, null=True)
    created_at = models.DateField(auto_now=True)

    def __str__(self):
        return f'{self.pk} : {self.title}'

subscription views.py


대충 로그아웃이 되었을 때도 subscription변수가 생성되기는 해야 하기 때문에 생기는 문제라고 함.

edit 아이콘 넣기

<a class="material-icons"
                    style="box-shadow: 0 0 4px #ccc; border-radius: 10rem; padding : .4rem"
                    href="{% url 'profileapp:update' pk=target_user.profile.pk %}">
                       edit
                    </a>
profile
Yoodeit

0개의 댓글