오늘 할 일
- 스터디 모집 글 = 포스팅 , 포스팅 리스트 메인 페이지에 추가해주기
☝🏻 포스팅 리스트 메인 페이지에 추가해주기
1. 포스팅 페이지 추가해주기
core/templates/ 디렉토리에
room_page.html 추가
2. 포스팅 모델 정하기
class Posting(models.Model):
title = models.CharField(max_length=50, verbose_name="제목") #제목
sub_title = models.CharField(max_length=100, blank=True, verbose_name="부제목") #부제목
content = models.TextField(verbose_name="내용") #콘텐츠
# 작성자도 만들어야함
create = models.DateTimeField(verbose_name='작성일', auto_now_add=True) #작성일
update = models.DateTimeField(verbose_name="수정일", auto_now=True) #수정된 시간만 수정
def __str__(self):
return f'[{self.id}] {self.title} / {self.create}' # id=id
def get_absolute_url(self): #어드민에서 게시글 바로 볼 수 있음
return f'/room/{self.id}/'
class Meta:
verbose_name = "포스팅 목록"
verbose_name_plural = "포스팅 목록"
> 모델 정하기 : 제목/부제목/콘텐츠(글자수 지정, html(truncatewords))/작성일/수정일
3. admin
from .models import Posting
class PostAdmin(admin.ModelAdmin):
list_display = ['id', 'title', 'create']
list_display_links = ['id', 'title']
admin.site.register(Posting,PostAdmin)
admin 커스터마이징은 블로그 참고
ㅊㅊ- > https://wayhome25.github.io/django/2017/03/22/django-ep8-django-admin/
admin 커스터마이징으로 아이디 / 제목 / 작성일까지 보이게 했으니
# core/models.py
def __str__(self):
return f'[{self.id}] {self.title} / {self.create}' # id=id
이 부분은 주석처리
4. views.py
#포스팅
from .models import Posting
# 메인(모집리스트))
def home(requset):
post_list = Posting.objects.all().order_by('-id')
context = {'posts' : post_list}
return render(requset, 'main.html',context)
order_by('-id') -> 최신글이 위로 가게 !(id 필드에 오름차순
ㅊㅊ-> https://django-orm-cookbook-ko.readthedocs.io/en/latest/asc_or_desc.html
models.py 에 Posting 함수를 사용해 objects.all() 해서 가져오깅
context = {'posts' : post_list} 해서
posts 로 html에서 for문을 돌면 내용을 가져올 수 있을 거임
main.html 수정해주깅
# main.html
{% extends 'base.html' %}
{% block title %}환영해용 | {% endblock %}
{% block content %}
{% for p in posts %}
<div class="p-10 lg:p-20 text-center">
<h1 class="text-3xl lg:text-6xl text-white">{{ p.title }}</h1>
<h1 class="text-3xl lg:text-6xl text-white">{{ p.sub_title }}</h1>
<h1 class="text-3xl lg:text-6xl text-white">{{ p.content }}</h1>
<h1 class="text-3xl lg:text-6xl text-white">{{ p.create }}</h1>
<h1 class="text-3xl lg:text-6xl text-white">{{ p.update }}</h1>
</div>
{% endfor %}
{% endblock %}
☝🏻 마이그레이션은 .. 잊지 않기로 ..
python manage.py makemigrations
python manage.py migrate
(마이그레이션 안했더니 오류떠서 헤맸음 ㅠ)
ㅊㅊ -> https://stackoverflow.com/questions/58738196/exception-value-no-such-table-vacancy-list-advuser
해야할 일
- 홈피드 검색바 기능 추가하기 / 글 쓰기 추가 / 글 올리면 글 목록에 보이게 하기
- 포스팅 상세페이지
'FrameWork > Django' 카테고리의 다른 글
7월 15일~17일(금/토/일) 글쓰기기능추가 (0) | 2022.07.18 |
---|---|
7월 14일(목) 검색바 추가(기능x)/글쓰기 추가(기능x)/메인페이지에 글목록 가져오기 (0) | 2022.07.14 |
7월 12일(화) 점프투파이썬 클래스 공부/커스텀 유저 회원가입 (0) | 2022.07.13 |
프로젝트를 시작할 때 깃허브 잊지 않ㄱㅣ ~ (0) | 2022.07.11 |
Django (0) | 2022.07.08 |