16 crispy_form, markdownx, OAuth

자무카·2023년 4월 9일
0

doit

목록 보기
5/5

crispy_form

<hr/>
<form method="post" enctype="multipart/form-data"{% csrf_token %}
	<table>
    	{{ form }} 
      <tr>
          <th›‹label for="id_tags_str"›Tags:</label>/th>
          <td> input type="text" name="tags_str" id="id_tags_str"></td>
      </tr>
  	</table>
    <button type="submit" class="btn btn-primary float-right">Submit</button>
</form>

1 설치 및 settings.py

  1. pip install django-crispy-forms

  2. settings.py 설정

    INSTALLED_APPS 에 추가. 'crispy_forms',
    CRISPY_TEMPLATE_PACK = 'bootstrap4'

    2 템플릿 파일 적용

    {% load crispy_forms_tags %}

    {{ form | crispy }}

태그 부분 <tr>~</tr> 도 <div>~</div> 로 변경

    <hr/>
    <form method="post" enctype="multipart/form-data">{% csrf_token %}
        {{ form | crispy }}
        <div id="div_id_tags_str">
            <label for="id_tags_str">Tags:</label>
            <input type="text" name="tags_str" id="id_tags_str" class="textinput textInput form-control">
        </div>
        <br />
<!--        <table>-->
<!--            {{form}}-->
<!--            <tr>-->
<!--                <th>-->
<!--                    <label for="id_tags">Tags:</label>-->
<!--                </th>-->
<!--                <td>-->
<!--                    <input type="text" name="tags" id="id_tags"></input>-->
<!--                </td>-->
<!--            </tr>-->
<!--        </table>-->
        <button type="submit" class="btn btn-primary float-right">Submit</button>
    </form>

markdownx

1 설치&앱 등록

  • pip install django-markdownx
  • settings.py : 'markdownx'
  • urls.py : path('markdownx/', include('markdownx.urls')),

2. models.py 수정

  1. 컨텐트 필드 속성 수정: content = MarkdownxField() <-- TextField
  2. def get_content_markdown() content에서 마크다운을 가져오는 메서드 등록
def get_content_markdown(self):
	return markdown(self.content)

3. 템플릿에서

{{ post.get_content_markdown | safe }}

4. admin.py 수정


from markdownx.admin import MarkdownxModelAdmin
# register(모델, 모델Admin)


class CategoryAdmin(admin.ModelAdmin):
    prepopulated_fields = {'slug':('name',)}
class TagAdmin(admin.ModelAdmin):
    prepopulated_fields = {'slug':('name',)}
    
#//TODO: register(모델, 모델Admin)
admin.site.register(Category, CategoryAdmin)
admin.site.register(Tag, TagAdmin)
# admin.site.register(Post)
admin.site.register(Post, MarkdownxModelAdmin)

Oauth

profile
가즈아

0개의 댓글