Notebook
  • 0. 소개
  • 1. 프로젝트 개요
  • 2. 개발/배포 환경
    • 2-1. 개발 라이브러리
    • 2-2. ERD
  • 3. Notebook
    • 3-1. 소스 코드/히스토리 확인하기
  • 4. 화면 구성
    • 4-1. 프로토타입/모바일
    • 4-2. 프로토타입/웹
    • 4-3. 화면 구성/웹
    • 4-4. 화면 구성/모바일
  • 5. 이슈 리포트
    • 5-1. Django & Python
    • 5-2. Android
    • 5-3. Machine Learning
  • 6. 개선점
Powered by GitBook
On this page
  • Trouble 1. Django template에 split 기능이 없음
  • Trouble 2. TTS 음성이 여러 개 쌓이는 문제

Was this helpful?

  1. 5. 이슈 리포트

5-1. Django & Python

Notebook 프로젝트의 웹서버 개발 중 발생한 이슈 리포트입니다.

Previous5. 이슈 리포트Next5-2. Android

Last updated 6 years ago

Was this helpful?

Trouble 1. Django template에 split 기능이 없음

해결 방법 : Custom template filter를 만들어준다.

data.url은 회원번호_저장된 시간(ex. 1235323443_2019-0515T14:02:25)의 형태로 저장이 되어 있습니다.

이 중 저희는 session에 저장되어 있는 회원 번호와 url에 저장되어 있는 회원번호가 일치할 경우, 공유하기 및 삭제하기 버튼을 보여주려 합니다.

  • 먼저, api라는 앱에 templatetags라는 디렉토리를 생성하고, custom_tags.py를 만들어줍니다.

  • custom_tags.py 에 다음과 같이 코드를 한다.

api/templatetags/custom_tags.py
from django import template
from django.template.defaultfilters import stringfilter
register = template.Library()

@register.filter(name='split')
def split(value, key):
    """
        Returns the value turned into a list.
    """
    return value.split(key)

@register.filter(name='trim')
@stringfilter

def trim(value):
    return value.
  • 이제 코스텀된, split filter를 template 에서 사용한다. notebook/home.html에 {% if request.session.user.id == data.url|split:"-"|first %}를 사용하여 필요한 부분만 이용하여 추출한다.

notebook/home.html
{% load custom_tags %}
{% if request.session.user.id == data.url|split:"_"|first %}
    <button class="btn btn-custom2" id="btn-publish" onclick="javacript:updateData({{ data.idx }});"> 
    {% if data.publish == True %}<i class="fas fa-users"></i>{% else %}<i class="fas fa-user"></i></i>{% endif %}
    </button>
                            
    <button class="btn btn-custom" id="btn-delete" onclick="javacript:delData({{ data.idx }});"><i class="fas fa-trash"></i></button> 
{% else %}
{% endif %}    

Trouble 2. TTS 음성이 여러 개 쌓이는 문제