장고5
모델 필드
TextField는 CharField와는 달리 길이에 대한 제한이 없다.
그래서 TextField는 포스트 글 같은 곳에 사용하고
CharField는 이름이나 제목같이 짧은 곳에 사용한다.
DateTimeField는 시간과 날짜를 저장한다.
DateTimeField(verbose_name=”Date Modified”, auto_now_add=True)
필드 옵션
verbose_name은 별명을 붙여주는 것이고
auto_now_add는 포스트가 처음 생성될 때의 시간을 저장한다.
auto_now는 포스트가 마지막으로 저장될 때 시간을 저장한다.
auto_now_add와 auto_now는 동시에 True일 수 없다.
날짜 데이터 필터
날짜 데이터에서 필터를 적용해 원하는 값만 가져올 수 있다.
{{변수|date:”d”}} 일(day)
{{변수|date:”M”}} 월(month)
linebreaksbr
장고 페이지에서 글을 작성할 때 줄바꿈을 하면 \n이 되는데 HTML에서는 br이 줄바꿈이니 \n을 br로 대체해 줘야 한다.
{{post.content|linebreaksbr}}
이런 식으로 적용할 부분에 linebreaksbr을 사용한다.
post.content에 출력 되는 내용들에 적용이 된다.
url-name
path에 name속성을 주고 사용하면 하드코딩을 하지 않아도 된다.
path(‘posts/<\int:post_id>/’, views.post_detail, name=’post-detail’)
이렇게 name속성을 주면 된다.
사용하는 곳에서는 기존에 이렇게 되있던걸
href=”/posts/{{post.id}}”
이런식으로 url-name과 url템플릿 태그를 사용해 작성하면 된다.
href=”{% url ‘post-detail’ post.id %}”
한칸 띄우고 인자를 작성해 함께 넘겨줄 수 있다.
기존의 방식에서는 urls에서 posts/를 수정하면 관련된 모든 링크들을 수정해 줘야 했지만 name속성을 사용하면 그럴필요가 없다.
Leave a comment